blob: 387841708908608e42164f24c0508c5122f840d6 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.olingo.commons.api.edm.provider;
import java.util.ArrayList;
import java.util.List;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.api.edm.geo.SRID;
/**
* The type Csdl property.
*/
public class CsdlProperty extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
private String name;
private String type;
private boolean collection;
private String mimeType;
private CsdlMapping mapping;
// Facets
private String defaultValue;
private boolean nullable = true;
private Integer maxLength;
private Integer precision;
private Integer scale;
private boolean unicode = true;
private SRID srid;
private List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
@Override
public String getName() {
return name;
}
/**
* Sets name.
*
* @param name the name
* @return the name
*/
public CsdlProperty setName(final String name) {
this.name = name;
return this;
}
/**
* Gets type.
*
* @return the type
*/
public String getType() {
return type;
}
/**
* Sets type.
*
* @param type the type
* @return the type
*/
public CsdlProperty setType(final String type) {
this.type = type;
return this;
}
/**
* Gets type as fQN object.
*
* @return the type as fQN object
*/
public FullQualifiedName getTypeAsFQNObject() {
return new FullQualifiedName(type);
}
/**
* Sets type.
*
* @param fqnName the fqn name
* @return the type
*/
public CsdlProperty setType(final FullQualifiedName fqnName) {
type = fqnName.getFullQualifiedNameAsString();
return this;
}
/**
* Is collection.
*
* @return the boolean
*/
public boolean isCollection() {
return collection;
}
/**
* Sets collection.
*
* @param isCollection the is collection
* @return the collection
*/
public CsdlProperty setCollection(final boolean isCollection) {
collection = isCollection;
return this;
}
/**
* Gets default value.
*
* @return the default value
*/
public String getDefaultValue() {
return defaultValue;
}
/**
* Sets default value.
*
* @param defaultValue the default value
* @return the default value
*/
public CsdlProperty setDefaultValue(final String defaultValue) {
this.defaultValue = defaultValue;
return this;
}
/**
* Is nullable.
*
* @return the boolean
*/
public boolean isNullable() {
return nullable;
}
/**
* Sets nullable.
*
* @param nullable the nullable
* @return the nullable
*/
public CsdlProperty setNullable(final boolean nullable) {
this.nullable = nullable;
return this;
}
/**
* Gets max length.
*
* @return the max length
*/
public Integer getMaxLength() {
return maxLength;
}
/**
* Sets max length.
*
* @param maxLength the max length
* @return the max length
*/
public CsdlProperty setMaxLength(final Integer maxLength) {
this.maxLength = maxLength;
return this;
}
/**
* Gets precision.
*
* @return the precision
*/
public Integer getPrecision() {
return precision;
}
/**
* Sets precision.
*
* @param precision the precision
* @return the precision
*/
public CsdlProperty setPrecision(final Integer precision) {
this.precision = precision;
return this;
}
/**
* Gets scale.
*
* @return the scale
*/
public Integer getScale() {
return scale;
}
/**
* Sets scale.
*
* @param scale the scale
* @return the scale
*/
public CsdlProperty setScale(final Integer scale) {
this.scale = scale;
return this;
}
/**
* Is unicode.
*
* @return the boolean
*/
public boolean isUnicode() {
return unicode;
}
/**
* Sets unicode.
*
* @param unicode the unicode
* @return the unicode
*/
public CsdlProperty setUnicode(final boolean unicode) {
this.unicode = unicode;
return this;
}
/**
* Gets mime type.
*
* @return the mime type
*/
public String getMimeType() {
return mimeType;
}
/**
* Sets mime type.
*
* @param mimeType the mime type
* @return the mime type
*/
public CsdlProperty setMimeType(final String mimeType) {
this.mimeType = mimeType;
return this;
}
/**
* Gets mapping.
*
* @return the mapping
*/
public CsdlMapping getMapping() {
return mapping;
}
/**
* Sets mapping.
*
* @param mapping the mapping
* @return the mapping
*/
public CsdlProperty setMapping(final CsdlMapping mapping) {
this.mapping = mapping;
return this;
}
@Override
public List<CsdlAnnotation> getAnnotations() {
return annotations;
}
/**
* Sets a list of annotations
* @param annotations list of annotations
* @return this instance
*/
public CsdlProperty setAnnotations(final List<CsdlAnnotation> annotations) {
this.annotations = annotations;
return this;
}
/**
* Sets srid.
*
* @param srid the srid
* @return the srid
*/
public CsdlProperty setSrid(final SRID srid) {
this.srid = srid;
return this;
}
/**
* Gets srid.
*
* @return the srid
*/
public SRID getSrid() {
return srid;
}
}