use of org.apache.atlas.AtlasException in project incubator-atlas by apache.
the class StructInstance method set.
public void set(String attrName, Object val) throws AtlasException {
AttributeInfo i = fieldMapping.fields.get(attrName);
if (i == null) {
throw new ValueConversionException(getTypeName(), val, "Unknown field " + attrName);
}
int pos = fieldMapping.fieldPos.get(attrName);
int nullPos = fieldMapping.fieldNullPos.get(attrName);
Object cVal = null;
explicitSets[nullPos] = true;
if (val != null && val instanceof Id) {
ClassType clsType = TypeSystem.getInstance().getDataType(ClassType.class, i.dataType().getName());
clsType.validateId((Id) val);
cVal = val;
} else {
try {
cVal = i.dataType().convert(val, i.multiplicity);
} catch (ValueConversionException.NullConversionException e) {
throw new ValueConversionException.NullConversionException("For field '" + attrName + "'", e);
}
}
if (cVal == null) {
nullFlags[nullPos] = true;
return;
}
nullFlags[nullPos] = false;
if (i.dataType() == DataTypes.BOOLEAN_TYPE) {
bools[pos] = (Boolean) cVal;
} else if (i.dataType() == DataTypes.BYTE_TYPE) {
bytes[pos] = (Byte) cVal;
} else if (i.dataType() == DataTypes.SHORT_TYPE) {
shorts[pos] = (Short) cVal;
} else if (i.dataType() == DataTypes.INT_TYPE) {
ints[pos] = (Integer) cVal;
} else if (i.dataType() == DataTypes.LONG_TYPE) {
longs[pos] = (Long) cVal;
} else if (i.dataType() == DataTypes.FLOAT_TYPE) {
floats[pos] = (Float) cVal;
} else if (i.dataType() == DataTypes.DOUBLE_TYPE) {
doubles[pos] = (Double) cVal;
} else if (i.dataType() == DataTypes.BIGINTEGER_TYPE) {
bigIntegers[pos] = (BigInteger) cVal;
} else if (i.dataType() == DataTypes.BIGDECIMAL_TYPE) {
bigDecimals[pos] = (BigDecimal) cVal;
} else if (i.dataType() == DataTypes.DATE_TYPE) {
dates[pos] = (Date) cVal;
} else if (i.dataType() == DataTypes.STRING_TYPE) {
strings[pos] = (String) cVal;
} else if (i.dataType().getTypeCategory() == DataTypes.TypeCategory.ENUM) {
ints[pos] = ((EnumValue) cVal).ordinal;
} else if (i.dataType().getTypeCategory() == DataTypes.TypeCategory.ARRAY) {
arrays[pos] = (ImmutableList) cVal;
} else if (i.dataType().getTypeCategory() == DataTypes.TypeCategory.MAP) {
maps[pos] = (ImmutableMap) cVal;
} else if (i.dataType().getTypeCategory() == DataTypes.TypeCategory.STRUCT || i.dataType().getTypeCategory() == DataTypes.TypeCategory.TRAIT) {
structs[pos] = (StructInstance) cVal;
} else if (i.dataType().getTypeCategory() == DataTypes.TypeCategory.CLASS) {
if (cVal instanceof Id) {
ids[pos] = (Id) cVal;
} else {
referenceables[pos] = (ReferenceableInstance) cVal;
}
} else {
throw new AtlasException(String.format("Unknown datatype %s", i.dataType()));
}
}
use of org.apache.atlas.AtlasException in project incubator-atlas by apache.
the class StructInstance method setBoolean.
public void setBoolean(String attrName, boolean val) throws AtlasException {
AttributeInfo i = fieldMapping.fields.get(attrName);
if (i == null) {
throw new AtlasException(String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
}
if (i.dataType() != DataTypes.BOOLEAN_TYPE) {
throw new AtlasException(String.format("Field %s for Struct %s is not a %s, call generic set method", attrName, getTypeName(), DataTypes.BOOLEAN_TYPE.getName()));
}
int pos = fieldMapping.fieldPos.get(attrName);
int nullPos = fieldMapping.fieldNullPos.get(attrName);
nullFlags[nullPos] = false;
bools[pos] = val;
explicitSets[nullPos] = true;
}
use of org.apache.atlas.AtlasException in project incubator-atlas by apache.
the class StructInstance method getByte.
public byte getByte(String attrName) throws AtlasException {
AttributeInfo i = fieldMapping.fields.get(attrName);
if (i == null) {
throw new AtlasException(String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
}
if (i.dataType() != DataTypes.BYTE_TYPE) {
throw new AtlasException(String.format("Field %s for Struct %s is not a %s, call generic get method", attrName, getTypeName(), DataTypes.BYTE_TYPE.getName()));
}
int pos = fieldMapping.fieldPos.get(attrName);
int nullPos = fieldMapping.fieldNullPos.get(attrName);
if (nullFlags[nullPos]) {
return DataTypes.BYTE_TYPE.nullValue();
}
return bytes[pos];
}
use of org.apache.atlas.AtlasException in project incubator-atlas by apache.
the class StructInstance method getInt.
public int getInt(String attrName) throws AtlasException {
AttributeInfo i = fieldMapping.fields.get(attrName);
if (i == null) {
throw new AtlasException(String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
}
if (i.dataType() != DataTypes.INT_TYPE && !(i.dataType() instanceof EnumType)) {
throw new AtlasException(String.format("Field %s for Struct %s is not a %s, call generic get method", attrName, getTypeName(), DataTypes.INT_TYPE.getName()));
}
int pos = fieldMapping.fieldPos.get(attrName);
int nullPos = fieldMapping.fieldNullPos.get(attrName);
if (nullFlags[nullPos]) {
return DataTypes.INT_TYPE.nullValue();
}
return ints[pos];
}
use of org.apache.atlas.AtlasException in project incubator-atlas by apache.
the class StructInstance method getString.
public String getString(String attrName) throws AtlasException {
AttributeInfo i = fieldMapping.fields.get(attrName);
if (i == null) {
throw new AtlasException(String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
}
if (i.dataType() != DataTypes.STRING_TYPE) {
throw new AtlasException(String.format("Field %s for Struct %s is not a %s, call generic get method", attrName, getTypeName(), DataTypes.STRING_TYPE.getName()));
}
int pos = fieldMapping.fieldPos.get(attrName);
int nullPos = fieldMapping.fieldNullPos.get(attrName);
if (nullFlags[nullPos]) {
return DataTypes.STRING_TYPE.nullValue();
}
return strings[pos];
}
Aggregations