atlas-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jma...@apache.org
Subject [16/51] [abbrv] incubator-atlas git commit: Refactor packages and scripts to Atlas (cherry picked from commit 414beba)
Date Sun, 14 Jun 2015 17:44:56 GMT
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/30711973/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/Struct.java
----------------------------------------------------------------------
diff --git a/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/Struct.java b/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/Struct.java
deleted file mode 100755
index 18447a5..0000000
--- a/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/Struct.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
- * 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.hadoop.metadata.typesystem;
-
-import org.apache.hadoop.metadata.classification.InterfaceAudience;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class Struct implements IStruct {
-
-    public final String typeName;
-    private final Map<String, Object> values;
-
-    public Struct(String typeName) {
-        this.typeName = typeName;
-        values = new HashMap<>();
-    }
-
-    @InterfaceAudience.Private
-    public Struct(String typeName, Map<String, Object> values) {
-        this(typeName);
-        if (values != null) {
-            this.values.putAll(values);
-        }
-    }
-
-    @Override
-    public String getTypeName() {
-        return typeName;
-    }
-
-    @Override
-    public Object get(String attrName) {
-        return values.get(attrName);
-    }
-
-    @Override
-    public void set(String attrName, Object value) {
-        values.put(attrName, value);
-    }
-
-    @Override
-    public Map<String, Object> getValuesMap() {
-        return values;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/30711973/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/persistence/DownCastStructInstance.java
----------------------------------------------------------------------
diff --git a/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/persistence/DownCastStructInstance.java b/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/persistence/DownCastStructInstance.java
deleted file mode 100755
index 57af152..0000000
--- a/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/persistence/DownCastStructInstance.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * 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.hadoop.metadata.typesystem.persistence;
-
-import org.apache.hadoop.metadata.MetadataException;
-import org.apache.hadoop.metadata.typesystem.IStruct;
-import org.apache.hadoop.metadata.typesystem.types.DownCastFieldMapping;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class DownCastStructInstance implements IStruct {
-
-    public final String typeName;
-    public final DownCastFieldMapping fieldMapping;
-    public final IStruct backingInstance;
-
-    public DownCastStructInstance(String typeName, DownCastFieldMapping fieldMapping,
-                                  IStruct backingInstance) {
-        this.typeName = typeName;
-        this.fieldMapping = fieldMapping;
-        this.backingInstance = backingInstance;
-    }
-
-    @Override
-    public String getTypeName() {
-        return typeName;
-    }
-
-    @Override
-    public Object get(String attrName) throws MetadataException {
-        return fieldMapping.get(this, attrName);
-    }
-
-    @Override
-    public void set(String attrName, Object val) throws MetadataException {
-        fieldMapping.set(this, attrName, val);
-    }
-
-    /*
-     * Use only for json serialization
-     * @nonpublic
-     */
-    @Override
-    public Map<String, Object> getValuesMap() throws MetadataException {
-
-        Map<String,Object> m = new HashMap<>();
-        for (String attr : fieldMapping.fieldNameMap.keySet()) {
-            m.put(attr, get(attr));
-        }
-        return m;
-    }
-}
-
-

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/30711973/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/persistence/Id.java
----------------------------------------------------------------------
diff --git a/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/persistence/Id.java b/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/persistence/Id.java
deleted file mode 100755
index ec524f1..0000000
--- a/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/persistence/Id.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/**
- * 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.hadoop.metadata.typesystem.persistence;
-
-import com.google.common.collect.ImmutableList;
-import org.apache.hadoop.metadata.MetadataException;
-import org.apache.hadoop.metadata.typesystem.IStruct;
-import org.apache.hadoop.metadata.typesystem.ITypedReferenceableInstance;
-import org.apache.hadoop.metadata.typesystem.types.FieldMapping;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.Date;
-import java.util.Map;
-import java.util.UUID;
-
-public class Id implements ITypedReferenceableInstance {
-
-    public final String id;
-    public final String className;
-    public final int version;
-
-    public Id(String id, int version, String className) {
-        this.id = id;
-        this.className = className;
-        this.version = version;
-    }
-
-    public Id(long id, int version, String className) {
-        this("" + id, version, className);
-    }
-
-    public Id(String className) {
-        this("" + (-System.nanoTime()), 0, className);
-    }
-
-    public boolean isUnassigned() {
-        try {
-            long l = Long.parseLong(id);
-            return l < 0;
-        } catch (NumberFormatException ne) {
-            return false;
-        }
-    }
-
-    public boolean isAssigned() {
-        try {
-            UUID.fromString(id);
-        } catch (IllegalArgumentException e) {
-            return false;
-        }
-
-        return true;
-    }
-
-    public String toString() {
-        return String
-                .format("(type: %s, id: %s)", className, isUnassigned() ? "<unassigned>" : "" + id);
-    }
-
-    public String getClassName() {
-        return className;
-    }
-
-    public int getVersion() {
-        return version;
-    }
-
-    public String _getId() {
-        return id;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        Id id1 = (Id) o;
-
-        if (version != id1.version) return false;
-        if (!className.equals(id1.className)) return false;
-        if (!id.equals(id1.id)) return false;
-
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        int result = id.hashCode();
-        result = 31 * result + className.hashCode();
-        result = 31 * result + version;
-        return result;
-    }
-
-    @Override
-    public ImmutableList<String> getTraits() {
-        return null;
-    }
-
-    @Override
-    public Id getId() {
-        return this;
-    }
-
-    @Override
-    public IStruct getTrait(String typeName) {
-        return null;
-    }
-
-    @Override
-    public String getTypeName() {
-        return className;
-    }
-
-    @Override
-    public Object get(String attrName) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    @Override
-    public void set(String attrName, Object val) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    @Override
-    public FieldMapping fieldMapping() {
-        return null;
-    }
-
-    @Override
-    public Map<String, Object> getValuesMap() throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    public void setNull(String attrName) throws MetadataException {
-        set(attrName, null);
-    }
-
-    public boolean getBoolean(String attrName) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    public byte getByte(String attrName) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    public short getShort(String attrName) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    public int getInt(String attrName) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    public long getLong(String attrName) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    public float getFloat(String attrName) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    public double getDouble(String attrName) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    public BigInteger getBigInt(String attrName) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    public BigDecimal getBigDecimal(String attrName) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    public Date getDate(String attrName) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    public String getString(String attrName) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    public void setBoolean(String attrName, boolean val) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    public void setByte(String attrName, byte val) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    public void setShort(String attrName, short val) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    public void setInt(String attrName, int val) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    public void setLong(String attrName, long val) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    public void setFloat(String attrName, float val) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    public void setDouble(String attrName, double val) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    public void setBigInt(String attrName, BigInteger val) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    public void setBigDecimal(String attrName, BigDecimal val) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    public void setDate(String attrName, Date val) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-
-    public void setString(String attrName, String val) throws MetadataException {
-        throw new MetadataException("Get/Set not supported on an Id object");
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/30711973/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/persistence/MapIds.java
----------------------------------------------------------------------
diff --git a/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/persistence/MapIds.java b/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/persistence/MapIds.java
deleted file mode 100755
index 2145857..0000000
--- a/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/persistence/MapIds.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * 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.hadoop.metadata.typesystem.persistence;
-
-import com.google.common.collect.ImmutableCollection;
-import com.google.common.collect.ImmutableMap;
-import org.apache.hadoop.metadata.MetadataException;
-import org.apache.hadoop.metadata.typesystem.IReferenceableInstance;
-import org.apache.hadoop.metadata.typesystem.types.DataTypes;
-import org.apache.hadoop.metadata.typesystem.types.ObjectGraphWalker;
-
-import java.util.Map;
-
-public class MapIds implements ObjectGraphWalker.NodeProcessor {
-
-    final Map<Id, Id> idToNewIdMap;
-
-    public MapIds(Map<Id, Id> idToNewIdMap) {
-        this.idToNewIdMap = idToNewIdMap;
-    }
-
-    @Override
-    public void processNode(ObjectGraphWalker.Node nd) throws MetadataException {
-
-        IReferenceableInstance ref = null;
-        Id id = null;
-
-        if (nd.attributeName == null) {
-            ref = (IReferenceableInstance) nd.instance;
-            Id newId = idToNewIdMap.get(ref.getId());
-            if (newId != null) {
-                ((ReferenceableInstance) ref).replaceWithNewId(newId);
-            }
-        } else if (nd.aInfo.dataType().getTypeCategory() == DataTypes.TypeCategory.CLASS) {
-            if (nd.value != null && nd.value instanceof IReferenceableInstance) {
-                Id oldId = ((IReferenceableInstance) nd.value).getId();
-                Id newId = idToNewIdMap.get(oldId);
-                /*
-                 * Replace Instances with Ids, irrespective of whether they map to newIds or not.
-                 */
-                newId = newId == null ? oldId : newId;
-                nd.instance.set(nd.attributeName, newId);
-            }
-        } else if (nd.aInfo.dataType().getTypeCategory() == DataTypes.TypeCategory.ARRAY) {
-            DataTypes.ArrayType aT = (DataTypes.ArrayType) nd.aInfo.dataType();
-            Object v = aT
-                    .mapIds((ImmutableCollection) nd.value, nd.aInfo.multiplicity, idToNewIdMap);
-            nd.instance.set(nd.attributeName, v);
-        } else if (nd.aInfo.dataType().getTypeCategory() == DataTypes.TypeCategory.MAP) {
-            DataTypes.MapType mT = (DataTypes.MapType) nd.aInfo.dataType();
-            Object v = mT.mapIds((ImmutableMap) nd.value, nd.aInfo.multiplicity, idToNewIdMap);
-            nd.instance.set(nd.attributeName, v);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/30711973/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/persistence/ReferenceableInstance.java
----------------------------------------------------------------------
diff --git a/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/persistence/ReferenceableInstance.java b/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/persistence/ReferenceableInstance.java
deleted file mode 100755
index ff5fc1d..0000000
--- a/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/persistence/ReferenceableInstance.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/**
- * 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.hadoop.metadata.typesystem.persistence;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import org.apache.hadoop.metadata.MetadataException;
-import org.apache.hadoop.metadata.typesystem.IStruct;
-import org.apache.hadoop.metadata.typesystem.ITypedReferenceableInstance;
-import org.apache.hadoop.metadata.typesystem.ITypedStruct;
-import org.apache.hadoop.metadata.typesystem.types.FieldMapping;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.Date;
-
-/*
- * @todo handle names prefixed by traitName.
- */
-public class ReferenceableInstance extends StructInstance implements ITypedReferenceableInstance {
-
-    private final ImmutableMap<String, ITypedStruct> traits;
-    private final ImmutableList<String> traitNames;
-    private Id id;
-
-
-    public ReferenceableInstance(Id id, String dataTypeName, FieldMapping fieldMapping,
-                                 boolean[] nullFlags,
-                                 boolean[] bools, byte[] bytes, short[] shorts, int[] ints,
-                                 long[] longs,
-                                 float[] floats, double[] doubles, BigDecimal[] bigDecimals,
-                                 BigInteger[] bigIntegers, Date[] dates, String[] strings,
-                                 ImmutableList<Object>[] arrays,
-                                 ImmutableMap<Object, Object>[] maps,
-                                 StructInstance[] structs,
-                                 ReferenceableInstance[] referenceableInstances,
-                                 Id[] ids,
-                                 ImmutableMap<String, ITypedStruct> traits) {
-        super(dataTypeName, fieldMapping, nullFlags, bools, bytes, shorts, ints, longs, floats,
-                doubles, bigDecimals,
-                bigIntegers, dates, strings, arrays, maps, structs, referenceableInstances, ids);
-        this.id = id;
-        this.traits = traits;
-        ImmutableList.Builder<String> b = new ImmutableList.Builder<String>();
-        for (String t : traits.keySet()) {
-            b.add(t);
-        }
-        this.traitNames = b.build();
-    }
-
-    @Override
-    public ImmutableList<String> getTraits() {
-        return traitNames;
-    }
-
-    @Override
-    public Id getId() {
-        return id;
-    }
-
-    @Override
-    public IStruct getTrait(String typeName) {
-        return traits.get(typeName);
-    }
-
-    /**
-     * @nopub
-     * @param id
-     */
-    void replaceWithNewId(Id id) {
-        this.id = id;
-    }
-
-    @Override
-    public String toString() {
-        try {
-            StringBuilder buf = new StringBuilder();
-            String prefix = "";
-
-            fieldMapping.output(this, buf, prefix);
-            return buf.toString();
-
-        } catch (MetadataException me) {
-            throw new RuntimeException(me);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/30711973/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/persistence/StructInstance.java
----------------------------------------------------------------------
diff --git a/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/persistence/StructInstance.java b/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/persistence/StructInstance.java
deleted file mode 100755
index c622a47..0000000
--- a/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/persistence/StructInstance.java
+++ /dev/null
@@ -1,757 +0,0 @@
-/**
- * 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.hadoop.metadata.typesystem.persistence;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import org.apache.hadoop.metadata.MetadataException;
-import org.apache.hadoop.metadata.typesystem.IStruct;
-import org.apache.hadoop.metadata.typesystem.ITypedStruct;
-import org.apache.hadoop.metadata.typesystem.types.AttributeInfo;
-import org.apache.hadoop.metadata.typesystem.types.ClassType;
-import org.apache.hadoop.metadata.typesystem.types.DataTypes;
-import org.apache.hadoop.metadata.typesystem.types.EnumType;
-import org.apache.hadoop.metadata.typesystem.types.EnumValue;
-import org.apache.hadoop.metadata.typesystem.types.FieldMapping;
-import org.apache.hadoop.metadata.typesystem.types.TypeSystem;
-import org.apache.hadoop.metadata.typesystem.types.TypeUtils;
-import org.apache.hadoop.metadata.typesystem.types.ValueConversionException;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
-public class StructInstance implements ITypedStruct {
-    public final String dataTypeName;
-    public final FieldMapping fieldMapping;
-    public final boolean nullFlags[];
-    public final boolean[] bools;
-    public final byte[] bytes;
-    public final short[] shorts;
-    public final int[] ints;
-    public final long[] longs;
-    public final float[] floats;
-    public final double[] doubles;
-    public final BigDecimal[] bigDecimals;
-    public final BigInteger[] bigIntegers;
-    public final Date[] dates;
-    public final String[] strings;
-    public final ImmutableList<Object>[] arrays;
-    public final ImmutableMap<Object, Object>[] maps;
-    public final StructInstance[] structs;
-    public final ReferenceableInstance[] referenceables;
-    public final Id[] ids;
-
-    public StructInstance(String dataTypeName, FieldMapping fieldMapping,
-                          boolean[] nullFlags, boolean[] bools, byte[] bytes, short[] shorts,
-                          int[] ints,
-                          long[] longs, float[] floats, double[] doubles,
-                          BigDecimal[] bigDecimals, BigInteger[] bigIntegers, Date[] dates,
-                          String[] strings,
-                          ImmutableList<Object>[] arrays, ImmutableMap<Object, Object>[] maps,
-                          StructInstance[] structs, ReferenceableInstance[] referenceables,
-                          Id[] ids) {
-        assert dataTypeName != null;
-        this.dataTypeName = dataTypeName;
-        this.fieldMapping = fieldMapping;
-        this.nullFlags = nullFlags;
-        this.bools = bools;
-        this.bytes = bytes;
-        this.shorts = shorts;
-        this.ints = ints;
-        this.longs = longs;
-        this.floats = floats;
-        this.doubles = doubles;
-        this.bigDecimals = bigDecimals;
-        this.bigIntegers = bigIntegers;
-        this.dates = dates;
-        this.strings = strings;
-        this.arrays = arrays;
-        this.maps = maps;
-        this.structs = structs;
-        this.referenceables = referenceables;
-        this.ids = ids;
-
-        for (int i = 0; i < nullFlags.length; i++) {
-            nullFlags[i] = true;
-        }
-    }
-
-    @Override
-    public String getTypeName() {
-        return dataTypeName;
-    }
-
-    @Override
-    public FieldMapping fieldMapping() {
-        return fieldMapping;
-    }
-
-    public void set(String attrName, Object val) throws MetadataException {
-        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;
-
-        if (val != null && val instanceof Id) {
-            ClassType clsType =
-                    TypeSystem.getInstance().getDataType(ClassType.class, i.dataType().getName());
-            clsType.validateId((Id) val);
-            cVal = val;
-        } else {
-            cVal = i.dataType().convert(val, i.multiplicity);
-        }
-        if (cVal == null) {
-            nullFlags[nullPos] = true;
-            return;
-        }
-        nullFlags[nullPos] = false;
-        if (i.dataType() == DataTypes.BOOLEAN_TYPE) {
-            bools[pos] = ((Boolean) cVal).booleanValue();
-        } else if (i.dataType() == DataTypes.BYTE_TYPE) {
-            bytes[pos] = ((Byte) cVal).byteValue();
-        } else if (i.dataType() == DataTypes.SHORT_TYPE) {
-            shorts[pos] = ((Short) cVal).shortValue();
-        } else if (i.dataType() == DataTypes.INT_TYPE) {
-            ints[pos] = ((Integer) cVal).intValue();
-        } else if (i.dataType() == DataTypes.LONG_TYPE) {
-            longs[pos] = ((Long) cVal).longValue();
-        } else if (i.dataType() == DataTypes.FLOAT_TYPE) {
-            floats[pos] = ((Float) cVal).floatValue();
-        } else if (i.dataType() == DataTypes.DOUBLE_TYPE) {
-            doubles[pos] = ((Double) cVal).doubleValue();
-        } 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 MetadataException(String.format("Unknown datatype %s", i.dataType()));
-        }
-    }
-
-    public Object get(String attrName) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-        int pos = fieldMapping.fieldPos.get(attrName);
-        int nullPos = fieldMapping.fieldNullPos.get(attrName);
-
-        if (nullFlags[nullPos]) {
-            return null;
-        }
-
-        if (i.dataType() == DataTypes.BOOLEAN_TYPE) {
-            return bools[pos];
-        } else if (i.dataType() == DataTypes.BYTE_TYPE) {
-            return bytes[pos];
-        } else if (i.dataType() == DataTypes.SHORT_TYPE) {
-            return shorts[pos];
-        } else if (i.dataType() == DataTypes.INT_TYPE) {
-            return ints[pos];
-        } else if (i.dataType() == DataTypes.LONG_TYPE) {
-            return longs[pos];
-        } else if (i.dataType() == DataTypes.FLOAT_TYPE) {
-            return floats[pos];
-        } else if (i.dataType() == DataTypes.DOUBLE_TYPE) {
-            return doubles[pos];
-        } else if (i.dataType() == DataTypes.BIGINTEGER_TYPE) {
-            return bigIntegers[pos];
-        } else if (i.dataType() == DataTypes.BIGDECIMAL_TYPE) {
-            return bigDecimals[pos];
-        } else if (i.dataType() == DataTypes.DATE_TYPE) {
-            return dates[pos];
-        } else if (i.dataType() == DataTypes.STRING_TYPE) {
-            return strings[pos];
-        } else if (i.dataType().getTypeCategory() == DataTypes.TypeCategory.ENUM) {
-            return ((EnumType) i.dataType()).fromOrdinal(ints[pos]);
-        } else if (i.dataType().getTypeCategory() == DataTypes.TypeCategory.ARRAY) {
-            return arrays[pos];
-        } else if (i.dataType().getTypeCategory() == DataTypes.TypeCategory.MAP) {
-            return maps[pos];
-        } else if (i.dataType().getTypeCategory() == DataTypes.TypeCategory.STRUCT ||
-                i.dataType().getTypeCategory() == DataTypes.TypeCategory.TRAIT) {
-            return structs[pos];
-        } else if (i.dataType().getTypeCategory() == DataTypes.TypeCategory.CLASS) {
-            if (ids[pos] != null) {
-                return ids[pos];
-            } else {
-                return referenceables[pos];
-            }
-        } else {
-            throw new MetadataException(String.format("Unknown datatype %s", i.dataType()));
-        }
-    }
-
-    public void setNull(String attrName) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-        int nullPos = fieldMapping.fieldNullPos.get(attrName);
-        nullFlags[nullPos] = true;
-    }
-
-    /*
-     * Use only for json serialization
-     * @nonpublic
-     */
-    @Override
-    public Map<String, Object> getValuesMap() throws MetadataException {
-
-        Map<String,Object> m = new HashMap<>();
-        for (String attr : fieldMapping.fields.keySet()) {
-            m.put(attr, get(attr));
-        }
-        return m;
-    }
-
-    public boolean getBoolean(String attrName) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-
-        if (i.dataType() != DataTypes.BOOLEAN_TYPE) {
-            throw new MetadataException(
-                    String.format("Field %s for Struct %s is not a %s, call generic get method",
-                            attrName, getTypeName(), DataTypes.BOOLEAN_TYPE.getName()));
-        }
-
-        int pos = fieldMapping.fieldPos.get(attrName);
-        int nullPos = fieldMapping.fieldNullPos.get(attrName);
-
-        if (nullFlags[nullPos]) {
-            return DataTypes.BOOLEAN_TYPE.nullValue();
-        }
-
-        return bools[pos];
-    }
-
-    public byte getByte(String attrName) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-
-        if (i.dataType() != DataTypes.BYTE_TYPE) {
-            throw new MetadataException(
-                    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];
-    }
-
-    public short getShort(String attrName) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-
-        if (i.dataType() != DataTypes.SHORT_TYPE) {
-            throw new MetadataException(
-                    String.format("Field %s for Struct %s is not a %s, call generic get method",
-                            attrName, getTypeName(), DataTypes.SHORT_TYPE.getName()));
-        }
-
-        int pos = fieldMapping.fieldPos.get(attrName);
-        int nullPos = fieldMapping.fieldNullPos.get(attrName);
-
-        if (nullFlags[nullPos]) {
-            return DataTypes.SHORT_TYPE.nullValue();
-        }
-
-        return shorts[pos];
-    }
-
-    public int getInt(String attrName) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-
-
-        if (i.dataType() != DataTypes.INT_TYPE && !(i.dataType() instanceof EnumType)) {
-            throw new MetadataException(
-                    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];
-    }
-
-    public long getLong(String attrName) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-
-        if (i.dataType() != DataTypes.LONG_TYPE) {
-            throw new MetadataException(
-                    String.format("Field %s for Struct %s is not a %s, call generic get method",
-                            attrName, getTypeName(), DataTypes.LONG_TYPE.getName()));
-        }
-
-        int pos = fieldMapping.fieldPos.get(attrName);
-        int nullPos = fieldMapping.fieldNullPos.get(attrName);
-
-        if (nullFlags[nullPos]) {
-            return DataTypes.LONG_TYPE.nullValue();
-        }
-
-        return longs[pos];
-    }
-
-    public float getFloat(String attrName) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-
-        if (i.dataType() != DataTypes.FLOAT_TYPE) {
-            throw new MetadataException(
-                    String.format("Field %s for Struct %s is not a %s, call generic get method",
-                            attrName, getTypeName(), DataTypes.FLOAT_TYPE.getName()));
-        }
-
-        int pos = fieldMapping.fieldPos.get(attrName);
-        int nullPos = fieldMapping.fieldNullPos.get(attrName);
-
-        if (nullFlags[nullPos]) {
-            return DataTypes.FLOAT_TYPE.nullValue();
-        }
-
-        return floats[pos];
-    }
-
-    public double getDouble(String attrName) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-
-        if (i.dataType() != DataTypes.DOUBLE_TYPE) {
-            throw new MetadataException(
-                    String.format("Field %s for Struct %s is not a %s, call generic get method",
-                            attrName, getTypeName(), DataTypes.DOUBLE_TYPE.getName()));
-        }
-
-        int pos = fieldMapping.fieldPos.get(attrName);
-        int nullPos = fieldMapping.fieldNullPos.get(attrName);
-
-        if (nullFlags[nullPos]) {
-            return DataTypes.DOUBLE_TYPE.nullValue();
-        }
-
-        return doubles[pos];
-    }
-
-    public BigInteger getBigInt(String attrName) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-
-        if (i.dataType() != DataTypes.BIGINTEGER_TYPE) {
-            throw new MetadataException(
-                    String.format("Field %s for Struct %s is not a %s, call generic get method",
-                            attrName, getTypeName(), DataTypes.BIGINTEGER_TYPE.getName()));
-        }
-
-        int pos = fieldMapping.fieldPos.get(attrName);
-        int nullPos = fieldMapping.fieldNullPos.get(attrName);
-
-        if (nullFlags[nullPos]) {
-            return DataTypes.BIGINTEGER_TYPE.nullValue();
-        }
-
-        return bigIntegers[pos];
-    }
-
-    public BigDecimal getBigDecimal(String attrName) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-
-        if (i.dataType() != DataTypes.BIGDECIMAL_TYPE) {
-            throw new MetadataException(
-                    String.format("Field %s for Struct %s is not a %s, call generic get method",
-                            attrName, getTypeName(), DataTypes.BIGDECIMAL_TYPE.getName()));
-        }
-
-        int pos = fieldMapping.fieldPos.get(attrName);
-        int nullPos = fieldMapping.fieldNullPos.get(attrName);
-
-        if (nullFlags[nullPos]) {
-            return DataTypes.BIGDECIMAL_TYPE.nullValue();
-        }
-
-        return bigDecimals[pos];
-    }
-
-    public Date getDate(String attrName) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-
-        if (i.dataType() != DataTypes.DATE_TYPE) {
-            throw new MetadataException(
-                    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];
-    }
-
-    public String getString(String attrName) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-
-        if (i.dataType() != DataTypes.STRING_TYPE) {
-            throw new MetadataException(
-                    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];
-    }
-
-    public void setBoolean(String attrName, boolean val) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-
-        if (i.dataType() != DataTypes.BOOLEAN_TYPE) {
-            throw new MetadataException(
-                    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;
-    }
-
-    public void setByte(String attrName, byte val) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-
-        if (i.dataType() != DataTypes.BYTE_TYPE) {
-            throw new MetadataException(
-                    String.format("Field %s for Struct %s is not a %s, call generic set method",
-                            attrName, getTypeName(), DataTypes.BYTE_TYPE.getName()));
-        }
-
-        int pos = fieldMapping.fieldPos.get(attrName);
-        int nullPos = fieldMapping.fieldNullPos.get(attrName);
-
-        nullFlags[nullPos] = false;
-        bytes[pos] = val;
-    }
-
-    public void setShort(String attrName, short val) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-
-        if (i.dataType() != DataTypes.SHORT_TYPE) {
-            throw new MetadataException(
-                    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;
-    }
-
-    public void setInt(String attrName, int val) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-
-        if (i.dataType() != DataTypes.INT_TYPE && !(i.dataType() instanceof EnumType)) {
-            throw new MetadataException(
-                    String.format("Field %s for Struct %s is not a %s, call generic set method",
-                            attrName, getTypeName(), DataTypes.INT_TYPE.getName()));
-        }
-
-        int pos = fieldMapping.fieldPos.get(attrName);
-        int nullPos = fieldMapping.fieldNullPos.get(attrName);
-
-        nullFlags[nullPos] = false;
-        ints[pos] = val;
-    }
-
-    public void setLong(String attrName, long val) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-
-        if (i.dataType() != DataTypes.LONG_TYPE) {
-            throw new MetadataException(
-                    String.format("Field %s for Struct %s is not a %s, call generic set method",
-                            attrName, getTypeName(), DataTypes.LONG_TYPE.getName()));
-        }
-
-        int pos = fieldMapping.fieldPos.get(attrName);
-        int nullPos = fieldMapping.fieldNullPos.get(attrName);
-
-        nullFlags[nullPos] = false;
-        longs[pos] = val;
-    }
-
-    public void setFloat(String attrName, float val) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-
-        if (i.dataType() != DataTypes.FLOAT_TYPE) {
-            throw new MetadataException(
-                    String.format("Field %s for Struct %s is not a %s, call generic set method",
-                            attrName, getTypeName(), DataTypes.FLOAT_TYPE.getName()));
-        }
-
-        int pos = fieldMapping.fieldPos.get(attrName);
-        int nullPos = fieldMapping.fieldNullPos.get(attrName);
-
-        nullFlags[nullPos] = false;
-        floats[pos] = val;
-    }
-
-    public void setDouble(String attrName, double val) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-
-        if (i.dataType() != DataTypes.DOUBLE_TYPE) {
-            throw new MetadataException(
-                    String.format("Field %s for Struct %s is not a %s, call generic set method",
-                            attrName, getTypeName(), DataTypes.DOUBLE_TYPE.getName()));
-        }
-
-        int pos = fieldMapping.fieldPos.get(attrName);
-        int nullPos = fieldMapping.fieldNullPos.get(attrName);
-
-        nullFlags[nullPos] = false;
-        doubles[pos] = val;
-    }
-
-    public void setBigInt(String attrName, BigInteger val) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-
-        if (i.dataType() != DataTypes.BIGINTEGER_TYPE) {
-            throw new MetadataException(
-                    String.format("Field %s for Struct %s is not a %s, call generic set method",
-                            attrName, getTypeName(), DataTypes.BIGINTEGER_TYPE.getName()));
-        }
-
-        int pos = fieldMapping.fieldPos.get(attrName);
-        int nullPos = fieldMapping.fieldNullPos.get(attrName);
-
-        nullFlags[nullPos] = val == null;
-        bigIntegers[pos] = val;
-    }
-
-    public void setBigDecimal(String attrName, BigDecimal val) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-
-        if (i.dataType() != DataTypes.BIGDECIMAL_TYPE) {
-            throw new MetadataException(
-                    String.format("Field %s for Struct %s is not a %s, call generic set method",
-                            attrName, getTypeName(), DataTypes.BIGDECIMAL_TYPE.getName()));
-        }
-
-        int pos = fieldMapping.fieldPos.get(attrName);
-        int nullPos = fieldMapping.fieldNullPos.get(attrName);
-
-        nullFlags[nullPos] = val == null;
-        bigDecimals[pos] = val;
-    }
-
-    public void setDate(String attrName, Date val) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-
-        if (i.dataType() != DataTypes.DATE_TYPE) {
-            throw new MetadataException(
-                    String.format("Field %s for Struct %s is not a %s, call generic set method",
-                            attrName, getTypeName(), DataTypes.DATE_TYPE.getName()));
-        }
-
-        int pos = fieldMapping.fieldPos.get(attrName);
-        int nullPos = fieldMapping.fieldNullPos.get(attrName);
-
-        nullFlags[nullPos] = val == null;
-        dates[pos] = val;
-    }
-
-    public void setString(String attrName, String val) throws MetadataException {
-        AttributeInfo i = fieldMapping.fields.get(attrName);
-        if (i == null) {
-            throw new MetadataException(
-                    String.format("Unknown field %s for Struct %s", attrName, getTypeName()));
-        }
-
-        if (i.dataType() != DataTypes.STRING_TYPE) {
-            throw new MetadataException(
-                    String.format("Field %s for Struct %s is not a %s, call generic set method",
-                            attrName, getTypeName(), DataTypes.STRING_TYPE.getName()));
-        }
-
-        int pos = fieldMapping.fieldPos.get(attrName);
-        int nullPos = fieldMapping.fieldNullPos.get(attrName);
-
-        nullFlags[nullPos] = val == null;
-        strings[pos] = val;
-    }
-
-    public void output(IStruct s, Appendable buf, String prefix) throws MetadataException {
-        TypeUtils.outputVal("{", buf, prefix);
-        if (s == null) {
-            TypeUtils.outputVal("<null>\n", buf, "");
-            return;
-        }
-        TypeUtils.outputVal("\n", buf, "");
-        String fieldPrefix = prefix + "\t";
-        for (Map.Entry<String, AttributeInfo> e : fieldMapping.fields.entrySet()) {
-            String attrName = e.getKey();
-            AttributeInfo i = e.getValue();
-            Object aVal = s.get(attrName);
-            TypeUtils.outputVal(attrName + " : ", buf, fieldPrefix);
-            i.dataType().output(aVal, buf, "");
-            TypeUtils.outputVal("\n", buf, "");
-        }
-        TypeUtils.outputVal("\n}\n", buf, "");
-    }
-
-    @Override
-    public String toString() {
-        try {
-            StringBuilder buf = new StringBuilder();
-            String prefix = "";
-
-            fieldMapping.output(this, buf, prefix);
-            return buf.toString();
-
-        } catch (MetadataException me) {
-            throw new RuntimeException(me);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/30711973/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/types/AbstractDataType.java
----------------------------------------------------------------------
diff --git a/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/types/AbstractDataType.java b/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/types/AbstractDataType.java
deleted file mode 100755
index c4cf88b..0000000
--- a/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/types/AbstractDataType.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * 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.hadoop.metadata.typesystem.types;
-
-import org.apache.hadoop.metadata.MetadataException;
-
-abstract class AbstractDataType<T> implements IDataType<T> {
-
-    protected T convertNull(Multiplicity m) throws MetadataException {
-        if (!m.nullAllowed()) {
-            throw new ValueConversionException.NullConversionException(m);
-        }
-        return null;
-    }
-
-    @Override
-    public void output(T val, Appendable buf, String prefix) throws MetadataException {
-        TypeUtils.outputVal(val == null ? "<null>" : val.toString(), buf, prefix);
-    }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/30711973/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/types/AttributeDefinition.java
----------------------------------------------------------------------
diff --git a/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/types/AttributeDefinition.java b/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/types/AttributeDefinition.java
deleted file mode 100755
index 976fbf2..0000000
--- a/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/types/AttributeDefinition.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- * 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.hadoop.metadata.typesystem.types;
-
-import org.apache.hadoop.metadata.ParamChecker;
-
-public final class AttributeDefinition {
-
-    public final String name;
-    public final String dataTypeName;
-    public final Multiplicity multiplicity;
-    public final boolean isComposite;
-    public final boolean isUnique;
-    public final boolean isIndexable;
-
-    /**
-     * If this is a reference attribute, then the name of the attribute on the Class
-     * that this refers to.
-     */
-    public final String reverseAttributeName;
-
-    public AttributeDefinition(String name, String dataTypeName, Multiplicity multiplicity,
-                               boolean isComposite, String reverseAttributeName) {
-        this(name, dataTypeName, multiplicity, isComposite, false, true, reverseAttributeName);
-
-    }
-
-    public AttributeDefinition(String name, String dataTypeName,
-                               Multiplicity multiplicity, boolean isComposite, boolean isUnique,
-                               boolean isIndexable, String reverseAttributeName) {
-        this.name = ParamChecker.notEmpty(name, "Attribute name");
-        this.dataTypeName = ParamChecker.notEmpty(dataTypeName, "Attribute type");
-        this.multiplicity = multiplicity;
-        this.isComposite = isComposite;
-        this.isUnique = isUnique;
-        this.isIndexable = isIndexable;
-        this.reverseAttributeName = ParamChecker.notEmptyIfNotNull(reverseAttributeName, "Reverse attribute name");
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        AttributeDefinition that = (AttributeDefinition) o;
-
-        if (isComposite != that.isComposite) return false;
-        if (isUnique != that.isUnique) return false;
-        if (isIndexable != that.isIndexable) return false;
-        if (!dataTypeName.equals(that.dataTypeName)) return false;
-        if (!multiplicity.equals(that.multiplicity)) return false;
-        if (!name.equals(that.name)) return false;
-        if (reverseAttributeName != null
-                ? !reverseAttributeName.equals(that.reverseAttributeName)
-                : that.reverseAttributeName != null)
-            return false;
-
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        int result = name.hashCode();
-        result = 31 * result + dataTypeName.hashCode();
-        result = 31 * result + multiplicity.hashCode();
-        result = 31 * result + (isComposite ? 1 : 0);
-        result = 31 * result + (isUnique ? 1 : 0);
-        result = 31 * result + (isIndexable ? 1 : 0);
-        result = 31 * result + (reverseAttributeName != null ? reverseAttributeName.hashCode() : 0);
-        return result;
-    }
-
-    @Override
-    public String toString() {
-        return name;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/30711973/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/types/AttributeInfo.java
----------------------------------------------------------------------
diff --git a/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/types/AttributeInfo.java b/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/types/AttributeInfo.java
deleted file mode 100755
index 0bacaa0..0000000
--- a/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/types/AttributeInfo.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * 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.hadoop.metadata.typesystem.types;
-
-import org.apache.hadoop.metadata.MetadataException;
-import org.codehaus.jettison.json.JSONException;
-import org.codehaus.jettison.json.JSONObject;
-
-import java.util.Map;
-
-public class AttributeInfo {
-    public final String name;
-    public final Multiplicity multiplicity;
-    public final boolean isComposite;
-    public final boolean isUnique;
-    public final boolean isIndexable;
-    /**
-     * If this is a reference attribute, then the name of the attribute on the Class
-     * that this refers to.
-     */
-    public final String reverseAttributeName;
-    private IDataType dataType;
-
-    AttributeInfo(TypeSystem t, AttributeDefinition def, Map<String, IDataType> tempTypes) throws MetadataException {
-        this.name = def.name;
-        this.dataType = (tempTypes != null && tempTypes.containsKey(def.dataTypeName)) ?
-                tempTypes.get(def.dataTypeName) : t.getDataType(IDataType.class, def.dataTypeName);
-        this.multiplicity = def.multiplicity;
-        this.isComposite = def.isComposite;
-        this.isUnique = def.isUnique;
-        this.isIndexable = def.isIndexable;
-        this.reverseAttributeName = def.reverseAttributeName;
-    }
-
-    public IDataType dataType() {
-        return dataType;
-    }
-
-    void setDataType(IDataType dT) {
-        dataType = dT;
-    }
-
-    @Override
-    public String toString() {
-        return "AttributeInfo{" +
-                "name='" + name + '\'' +
-                ", dataType=" + dataType +
-                ", multiplicity=" + multiplicity +
-                ", isComposite=" + isComposite +
-                ", isUnique=" + isUnique +
-                ", isIndexable=" + isIndexable +
-                ", reverseAttributeName='" + reverseAttributeName + '\'' +
-                '}';
-    }
-
-    public String toJson() throws JSONException {
-        JSONObject json = new JSONObject();
-        json.put("name", name);
-        json.put("multiplicity", multiplicity.toJson());
-        json.put("isComposite", isComposite);
-        json.put("isUnique", isUnique);
-        json.put("isIndexable", isIndexable);
-        json.put("dataType", dataType.getName());
-        json.put("reverseAttributeName", reverseAttributeName);
-        return json.toString();
-    }
-
-    public static AttributeDefinition fromJson(String jsonStr) throws JSONException {
-        JSONObject json = new JSONObject(jsonStr);
-        String reverseAttr = null;
-        if (json.has("reverseAttributeName")) {
-            reverseAttr = json.getString("reverseAttributeName");
-        }
-        return new AttributeDefinition(json.getString("name"), json.getString("dataType"),
-                Multiplicity.fromJson(json.getString("multiplicity")), json.getBoolean("isComposite"),
-                json.getBoolean("isUnique"), json.getBoolean("isIndexable"), reverseAttr);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/30711973/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/types/ClassType.java
----------------------------------------------------------------------
diff --git a/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/types/ClassType.java b/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/types/ClassType.java
deleted file mode 100755
index 4e8d738..0000000
--- a/typesystem/src/main/java/org/apache/hadoop/metadata/typesystem/types/ClassType.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/**
- * 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.hadoop.metadata.typesystem.types;
-
-import com.google.common.collect.ImmutableBiMap;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import org.apache.hadoop.metadata.MetadataException;
-import org.apache.hadoop.metadata.typesystem.IReferenceableInstance;
-import org.apache.hadoop.metadata.typesystem.IStruct;
-import org.apache.hadoop.metadata.typesystem.ITypedReferenceableInstance;
-import org.apache.hadoop.metadata.typesystem.ITypedStruct;
-import org.apache.hadoop.metadata.typesystem.Referenceable;
-import org.apache.hadoop.metadata.typesystem.Struct;
-import org.apache.hadoop.metadata.typesystem.persistence.Id;
-import org.apache.hadoop.metadata.typesystem.persistence.ReferenceableInstance;
-import org.apache.hadoop.metadata.typesystem.persistence.StructInstance;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-public class ClassType extends HierarchicalType<ClassType, IReferenceableInstance>
-        implements IConstructableType<IReferenceableInstance, ITypedReferenceableInstance> {
-
-    public static final String TRAIT_NAME_SEP = "::";
-
-    public final Map<AttributeInfo, List<String>> infoToNameMap;
-
-    /**
-     * Used when creating a ClassType, to support recursive Structs.
-     */
-    ClassType(TypeSystem typeSystem, String name, ImmutableList<String> superTypes, int numFields) {
-        super(typeSystem, ClassType.class, name, superTypes, numFields);
-        infoToNameMap = null;
-    }
-
-    ClassType(TypeSystem typeSystem, String name, ImmutableList<String> superTypes,
-              AttributeInfo... fields)
-    throws MetadataException {
-        super(typeSystem, ClassType.class, name, superTypes, fields);
-        infoToNameMap = TypeUtils.buildAttrInfoToNameMap(fieldMapping);
-    }
-
-    @Override
-    public DataTypes.TypeCategory getTypeCategory() {
-        return DataTypes.TypeCategory.CLASS;
-    }
-
-    public void validateId(Id id) throws MetadataException {
-        if (id != null) {
-            ClassType cType = typeSystem.getDataType(ClassType.class, id.className);
-            if (isSubType(cType.getName())) {
-                return;
-            }
-            throw new MetadataException(
-                    String.format("Id %s is not valid for class %s", id, getName()));
-        }
-    }
-
-    protected Id getId(Object val) throws MetadataException {
-        if (val instanceof Referenceable) {
-            return ((Referenceable) val).getId();
-        }
-        throw new MetadataException(String.format("Cannot get id from class %s", val.getClass()));
-    }
-
-    @Override
-    public ITypedReferenceableInstance convert(Object val, Multiplicity m)
-    throws MetadataException {
-
-        if (val != null) {
-            if (val instanceof ITypedReferenceableInstance) {
-                ITypedReferenceableInstance tr = (ITypedReferenceableInstance) val;
-                if (!tr.getTypeName().equals(getName())) {
-                     /*
-                     * If val is a subType instance; invoke convert on it.
-                     */
-                    ClassType valType = typeSystem.getDataType(superTypeClass, tr.getTypeName());
-                    if (valType.superTypePaths.containsKey(name)) {
-                        return valType.convert(val, m);
-                    }
-                    throw new ValueConversionException(this, val);
-                }
-                return tr;
-            } else if (val instanceof Struct) {
-                Struct s = (Struct) val;
-                Referenceable r = null;
-                Id id = null;
-
-                if (!s.typeName.equals(getName())) {
-                    /*
-                     * If val is a subType instance; invoke convert on it.
-                     */
-                    ClassType valType = typeSystem.getDataType(superTypeClass, s.typeName);
-                    if (valType.superTypePaths.containsKey(name)) {
-                        return valType.convert(s, m);
-                    }
-                    throw new ValueConversionException(this, val);
-                }
-
-                if (val instanceof Referenceable) {
-                    r = (Referenceable) val;
-                    id = r.getId();
-                }
-
-                ITypedReferenceableInstance tr = r != null ?
-                        createInstanceWithTraits(id, r, r.getTraits().toArray(new String[0]))
-                        : createInstance(id);
-
-                if (id != null && id.isAssigned()) {
-                    return tr;
-                }
-
-                for (Map.Entry<String, AttributeInfo> e : fieldMapping.fields.entrySet()) {
-                    String attrKey = e.getKey();
-                    AttributeInfo i = e.getValue();
-                    Object aVal = s.get(attrKey);
-                    if (aVal != null &&
-                            i.dataType().getTypeCategory() == DataTypes.TypeCategory.CLASS) {
-                        if (!i.isComposite) {
-                            aVal = ((IReferenceableInstance) aVal).getId();
-                        }
-                    }
-
-                    try {
-                        tr.set(attrKey, aVal);
-                    } catch (ValueConversionException ve) {
-                        throw new ValueConversionException(this, val, ve);
-                    }
-                }
-
-                return tr;
-            } else if (val instanceof ReferenceableInstance) {
-                validateId(((ReferenceableInstance) val).getId());
-                return (ReferenceableInstance) val;
-            } else {
-                throw new ValueConversionException(this, val);
-            }
-        }
-        if (!m.nullAllowed()) {
-            throw new ValueConversionException.NullConversionException(m);
-        }
-        return null;
-    }
-
-    @Override
-    public ITypedReferenceableInstance createInstance() throws MetadataException {
-        return createInstance((String[])null);
-    }
-
-    public ITypedReferenceableInstance createInstance(String... traitNames)
-    throws MetadataException {
-        return createInstance(null, traitNames);
-    }
-
-    public ITypedReferenceableInstance createInstance(Id id, String... traitNames)
-    throws MetadataException {
-        return createInstanceWithTraits(id, null, traitNames);
-    }
-
-    public ITypedReferenceableInstance createInstanceWithTraits(Id id, Referenceable r,
-                                                                String... traitNames)
-    throws MetadataException {
-
-        ImmutableMap.Builder<String, ITypedStruct> b
-                = new ImmutableBiMap.Builder<String, ITypedStruct>();
-        if (traitNames != null) {
-            for (String t : traitNames) {
-                TraitType tType = typeSystem.getDataType(TraitType.class, t);
-                IStruct iTraitObject = r == null ? null : r.getTrait(t);
-                ITypedStruct trait = iTraitObject == null ? tType.createInstance() :
-                        tType.convert(iTraitObject, Multiplicity.REQUIRED);
-                b.put(t, trait);
-            }
-        }
-
-        return new ReferenceableInstance(id == null ? new Id(getName()) : id,
-                getName(),
-                fieldMapping,
-                new boolean[fieldMapping.fields.size()],
-                fieldMapping.numBools == 0 ? null : new boolean[fieldMapping.numBools],
-                fieldMapping.numBytes == 0 ? null : new byte[fieldMapping.numBytes],
-                fieldMapping.numShorts == 0 ? null : new short[fieldMapping.numShorts],
-                fieldMapping.numInts == 0 ? null : new int[fieldMapping.numInts],
-                fieldMapping.numLongs == 0 ? null : new long[fieldMapping.numLongs],
-                fieldMapping.numFloats == 0 ? null : new float[fieldMapping.numFloats],
-                fieldMapping.numDoubles == 0 ? null : new double[fieldMapping.numDoubles],
-                fieldMapping.numBigDecimals == 0 ? null
-                        : new BigDecimal[fieldMapping.numBigDecimals],
-                fieldMapping.numBigInts == 0 ? null : new BigInteger[fieldMapping.numBigInts],
-                fieldMapping.numDates == 0 ? null : new Date[fieldMapping.numDates],
-                fieldMapping.numStrings == 0 ? null : new String[fieldMapping.numStrings],
-                fieldMapping.numArrays == 0 ? null : new ImmutableList[fieldMapping.numArrays],
-                fieldMapping.numMaps == 0 ? null : new ImmutableMap[fieldMapping.numMaps],
-                fieldMapping.numStructs == 0 ? null : new StructInstance[fieldMapping.numStructs],
-                fieldMapping.numReferenceables == 0 ? null
-                        : new ReferenceableInstance[fieldMapping.numReferenceables],
-                fieldMapping.numReferenceables == 0 ? null : new Id[fieldMapping.numReferenceables],
-                b.build());
-    }
-
-    @Override
-    public void output(IReferenceableInstance s, Appendable buf, String prefix)
-    throws MetadataException {
-        fieldMapping.output(s, buf, prefix);
-    }
-
-    @Override
-    public List<String> getNames(AttributeInfo info) {
-        return infoToNameMap.get(info);
-    }
-}
\ No newline at end of file


Mime
View raw message