Search in sources :

Example 36 with AttributeInfo

use of org.apache.atlas.typesystem.types.AttributeInfo in project incubator-atlas by apache.

the class StructInstance method getDate.

public Date getDate(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.DATE_TYPE) {
        throw new AtlasException(String.format("Field %s for Struct %s is not a %s, call generic get method", attrName, getTypeName(), DataTypes.DATE_TYPE.getName()));
    }
    int pos = fieldMapping.fieldPos.get(attrName);
    int nullPos = fieldMapping.fieldNullPos.get(attrName);
    if (nullFlags[nullPos]) {
        return DataTypes.DATE_TYPE.nullValue();
    }
    return dates[pos];
}
Also used : AttributeInfo(org.apache.atlas.typesystem.types.AttributeInfo) AtlasException(org.apache.atlas.AtlasException)

Example 37 with AttributeInfo

use of org.apache.atlas.typesystem.types.AttributeInfo in project incubator-atlas by apache.

the class StructInstance method setShort.

public void setShort(String attrName, short 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.SHORT_TYPE) {
        throw new AtlasException(String.format("Field %s for Struct %s is not a %s, call generic set method", attrName, getTypeName(), DataTypes.SHORT_TYPE.getName()));
    }
    int pos = fieldMapping.fieldPos.get(attrName);
    int nullPos = fieldMapping.fieldNullPos.get(attrName);
    nullFlags[nullPos] = false;
    shorts[pos] = val;
    explicitSets[nullPos] = true;
}
Also used : AttributeInfo(org.apache.atlas.typesystem.types.AttributeInfo) AtlasException(org.apache.atlas.AtlasException)

Example 38 with AttributeInfo

use of org.apache.atlas.typesystem.types.AttributeInfo 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()));
    }
}
Also used : EnumValue(org.apache.atlas.typesystem.types.EnumValue) ClassType(org.apache.atlas.typesystem.types.ClassType) AtlasException(org.apache.atlas.AtlasException) Date(java.util.Date) ImmutableMap(com.google.common.collect.ImmutableMap) BigInteger(java.math.BigInteger) AttributeInfo(org.apache.atlas.typesystem.types.AttributeInfo) BigInteger(java.math.BigInteger) ValueConversionException(org.apache.atlas.typesystem.types.ValueConversionException)

Example 39 with AttributeInfo

use of org.apache.atlas.typesystem.types.AttributeInfo 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;
}
Also used : AttributeInfo(org.apache.atlas.typesystem.types.AttributeInfo) AtlasException(org.apache.atlas.AtlasException)

Example 40 with AttributeInfo

use of org.apache.atlas.typesystem.types.AttributeInfo 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];
}
Also used : AttributeInfo(org.apache.atlas.typesystem.types.AttributeInfo) AtlasException(org.apache.atlas.AtlasException)

Aggregations

AttributeInfo (org.apache.atlas.typesystem.types.AttributeInfo)47 AtlasException (org.apache.atlas.AtlasException)26 HashMap (java.util.HashMap)6 IDataType (org.apache.atlas.typesystem.types.IDataType)6 AtlasEdge (org.apache.atlas.repository.graphdb.AtlasEdge)5 FieldMapping (org.apache.atlas.typesystem.types.FieldMapping)5 Map (java.util.Map)4 AtlasVertex (org.apache.atlas.repository.graphdb.AtlasVertex)4 HierarchicalType (org.apache.atlas.typesystem.types.HierarchicalType)4 Test (org.testng.annotations.Test)4 ImmutableMap (com.google.common.collect.ImmutableMap)3 ITypedReferenceableInstance (org.apache.atlas.typesystem.ITypedReferenceableInstance)3 Id (org.apache.atlas.typesystem.persistence.Id)3 ImmutableBiMap (com.google.common.collect.ImmutableBiMap)2 ArrayList (java.util.ArrayList)2 Collection (java.util.Collection)2 ClosureExpression (org.apache.atlas.groovy.ClosureExpression)2 FunctionCallExpression (org.apache.atlas.groovy.FunctionCallExpression)2 GroovyExpression (org.apache.atlas.groovy.GroovyExpression)2 LiteralExpression (org.apache.atlas.groovy.LiteralExpression)2