blob: 5ddf16e2f6e5c0650a9c7ea7e671595762beb2e0 [file] [log] [blame]
/***************************************************************************
* Copyright (c) 2004 - 2008 Eike Stepper, Germany.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Eike Stepper - initial API and implementation
**************************************************************************/
package org.eclipse.emf.cdo.internal.common.model;
import org.eclipse.emf.cdo.common.model.CDOPackageManager;
import org.eclipse.emf.cdo.common.model.CDOType;
import java.text.MessageFormat;
/**
* @author Eike Stepper
*/
public abstract class CDOTypeImpl extends CDOClassifierImpl implements CDOType
{
// private static final byte BOOLEAN_DEFAULT_PRIMITIVE = 0;
//
// private static final char CHARACTER_DEFAULT_PRIMITIVE = 0;
//
// private static final short SHORT_DEFAULT_PRIMITIVE = 0;
//
// public static final Boolean BOOLEAN_DEFAULT = new Boolean(false);
//
// public static final Byte BYTE_DEFAULT = new Byte(BOOLEAN_DEFAULT_PRIMITIVE);
//
// public static final Character CHARACTER_DEFAULT = new Character(CHARACTER_DEFAULT_PRIMITIVE);
//
// public static final Double DOUBLE_DEFAULT = new Double(0.0);
//
// public static final Float FLOAT_DEFAULT = new Float(0.0);
//
// public static final Integer INTEGER_DEFAULT = new Integer(0);
//
// public static final Long LONG_DEFAULT = new Long(0L);
//
// public static final Short SHORT_DEFAULT = new Short(SHORT_DEFAULT_PRIMITIVE);
// public static final CDOType BOOLEAN = new CDOTypeImpl("BOOLEAN", 22, false, BOOLEAN_DEFAULT)
// {
// public void writeValue(CDODataOutput out, Object value) throws IOException
// {
// boolean v = (Boolean)(value == null ? getDefaultValue() : value);
// out.writeBoolean(v);
// }
//
// public Object readValue(CDODataInput in) throws IOException
// {
// boolean v = in.readBoolean();
// return new Boolean(v);
// }
// };
//
// public static final CDOType BYTE = new CDOTypeImpl("BYTE", 24, false, BYTE_DEFAULT)
// {
// public void writeValue(CDODataOutput out, Object value) throws IOException
// {
// out.writeByte((Byte)(value == null ? getDefaultValue() : value));
// }
//
// public Object readValue(CDODataInput in) throws IOException
// {
// return new Byte(in.readByte());
// }
// };
//
// public static final CDOType CHAR = new CDOTypeImpl("CHAR", 27, false, CHARACTER_DEFAULT)
// {
// public void writeValue(CDODataOutput out, Object value) throws IOException
// {
// out.writeChar(((Character)(value == null ? getDefaultValue() : value)).charValue());
// }
//
// public Object readValue(CDODataInput in) throws IOException
// {
// return new Character(in.readChar());
// }
// };
//
// public static final CDOType DOUBLE = new CDOTypeImpl("DOUBLE", 31, false, DOUBLE_DEFAULT)
// {
// public void writeValue(CDODataOutput out, Object value) throws IOException
// {
// out.writeDouble((Double)(value == null ? getDefaultValue() : value));
// }
//
// public Object readValue(CDODataInput in) throws IOException
// {
// return new Double(in.readDouble());
// }
// };
//
// public static final CDOType FLOAT = new CDOTypeImpl("FLOAT", 37, false, FLOAT_DEFAULT)
// {
// public void writeValue(CDODataOutput out, Object value) throws IOException
// {
// out.writeFloat((Float)(value == null ? getDefaultValue() : value));
// }
//
// public Object readValue(CDODataInput in) throws IOException
// {
// return new Float(in.readFloat());
// }
// };
//
// public static final CDOType INT = new CDOTypeImpl("INT", 39, false, INTEGER_DEFAULT)
// {
// public void writeValue(CDODataOutput out, Object value) throws IOException
// {
// out.writeInt((Integer)(value == null ? getDefaultValue() : value));
// }
//
// public Object readValue(CDODataInput in) throws IOException
// {
// return new Integer(in.readInt());
// }
// };
//
// public static final CDOType LONG = new CDOTypeImpl("LONG", 43, false, LONG_DEFAULT)
// {
// public void writeValue(CDODataOutput out, Object value) throws IOException
// {
// out.writeLong((Long)(value == null ? getDefaultValue() : value));
// }
//
// public Object readValue(CDODataInput in) throws IOException
// {
// return new Long(in.readLong());
// }
// };
//
// public static final CDOType SHORT = new CDOTypeImpl("SHORT", 48, false, SHORT_DEFAULT)
// {
// public void writeValue(CDODataOutput out, Object value) throws IOException
// {
// out.writeShort((Short)(value == null ? getDefaultValue() : value));
// }
//
// public Object readValue(CDODataInput in) throws IOException
// {
// return new Short(in.readShort());
// }
// };
//
// public static final CDOType OBJECT = new CDOTypeImpl("OBJECT", 10, true, CDOID.NULL)
// {
// public void writeValue(CDODataOutput out, Object value) throws IOException
// {
// out.writeCDOID((CDOID)value);
// }
//
// public Object readValue(CDODataInput in) throws IOException
// {
// return in.readCDOID();
// }
//
// @Override
// public Object doAdjustReferences(CDOReferenceAdjuster adjuster, Object value)
// {
// return adjuster.adjustReference(value);
// }
// };
//
// public static final CDOType BOOLEAN_OBJECT = new ObjectType("BOOLEAN_OBJECT", 23)
// {
// @Override
// protected void doWriteValue(CDODataOutput out, Object value) throws IOException
// {
// out.writeBoolean((Boolean)value);
// }
//
// @Override
// protected Object doReadValue(CDODataInput in) throws IOException
// {
// return in.readBoolean();
// }
// };
//
// public static final CDOType BYTE_OBJECT = new ObjectType("BYTE_OBJECT", 26)
// {
// @Override
// protected void doWriteValue(CDODataOutput out, Object value) throws IOException
// {
// out.writeByte((Byte)value);
// }
//
// @Override
// protected Object doReadValue(CDODataInput in) throws IOException
// {
// return in.readByte();
// }
// };
//
// public static final CDOType CHARACTER_OBJECT = new ObjectType("CHARACTER_OBJECT", 28)
// {
// @Override
// protected void doWriteValue(CDODataOutput out, Object value) throws IOException
// {
// out.writeChar((Character)value);
// }
//
// @Override
// protected Object doReadValue(CDODataInput in) throws IOException
// {
// return in.readChar();
// }
// };
//
// public static final CDOType DATE = new ObjectType("DATE", 29)
// {
// @Override
// protected void doWriteValue(CDODataOutput out, Object value) throws IOException
// {
// out.writeLong(((Date)value).getTime());
// }
//
// @Override
// protected Object doReadValue(CDODataInput in) throws IOException
// {
// return new Date(in.readLong());
// }
// };
//
// public static final CDOType DOUBLE_OBJECT = new ObjectType("DOUBLE_OBJECT", 32)
// {
// @Override
// protected void doWriteValue(CDODataOutput out, Object value) throws IOException
// {
// out.writeDouble((Double)value);
// }
//
// @Override
// protected Object doReadValue(CDODataInput in) throws IOException
// {
// return in.readDouble();
// }
// };
//
// public static final CDOType FLOAT_OBJECT = new ObjectType("FLOAT_OBJECT", 38)
// {
// @Override
// protected void doWriteValue(CDODataOutput out, Object value) throws IOException
// {
// out.writeFloat((Float)value);
// }
//
// @Override
// protected Object doReadValue(CDODataInput in) throws IOException
// {
// return in.readFloat();
// }
// };
//
// public static final CDOType INTEGER_OBJECT = new ObjectType("INTEGER_OBJECT", 40)
// {
// @Override
// protected void doWriteValue(CDODataOutput out, Object value) throws IOException
// {
// out.writeInt((Integer)value);
// }
//
// @Override
// protected Object doReadValue(CDODataInput in) throws IOException
// {
// return in.readInt();
// }
// };
//
// public static final CDOType LONG_OBJECT = new ObjectType("LONG_OBJECT", 44)
// {
// @Override
// protected void doWriteValue(CDODataOutput out, Object value) throws IOException
// {
// out.writeLong((Long)value);
// }
//
// @Override
// protected Object doReadValue(CDODataInput in) throws IOException
// {
// return in.readLong();
// }
// };
//
// public static final CDOType SHORT_OBJECT = new ObjectType("SHORT_OBJECT", 49)
// {
// @Override
// protected void doWriteValue(CDODataOutput out, Object value) throws IOException
// {
// out.writeShort((Short)value);
// }
//
// @Override
// protected Object doReadValue(CDODataInput in) throws IOException
// {
// return in.readShort();
// }
// };
//
// public static final CDOType STRING = new CDOTypeImpl("STRING", 50, true)
// {
// @SuppressWarnings("cast")
// @Override
// public Object copyValue(Object value)
// {
// return (String)value;
// }
//
// public void writeValue(CDODataOutput out, Object value) throws IOException
// {
// out.writeString((String)value);
// }
//
// public Object readValue(CDODataInput in) throws IOException
// {
// return in.readString();
// }
// };
//
// public static final CDOType BYTE_ARRAY = new CDOTypeImpl("BYTE_ARRAY", 25, true)
// {
// @Override
// public Object copyValue(Object value)
// {
// if (value == null)
// {
// return null;
// }
//
// byte[] array = (byte[])value;
// byte[] result = new byte[array.length];
// System.arraycopy(value, 0, result, 0, array.length);
// return result;
// }
//
// public void writeValue(CDODataOutput out, Object value) throws IOException
// {
// out.writeByteArray((byte[])value);
// }
//
// public Object readValue(CDODataInput in) throws IOException
// {
// return in.readByteArray();
// }
// };
//
// public static final CDOType FEATURE_MAP_ENTRY = new CDOTypeImpl("FEATURE_MAP_ENTRY", 36, false)
// {
// @Override
// public Object copyValue(Object value)
// {
// return value;
// }
//
// public void writeValue(CDODataOutput out, Object value) throws IOException
// {
// CDOFeatureMapEntryDataTypeImpl featureMapEntry = (CDOFeatureMapEntryDataTypeImpl)value;
// out.writeString(featureMapEntry.getURI());
// out.writeCDOID(out.getIDProvider().provideCDOID(featureMapEntry.getObject()));
// }
//
// public Object readValue(CDODataInput in) throws IOException
// {
// String uri = in.readString();
// Object id = in.readCDOID();
// return new CDOFeatureMapEntryDataTypeImpl(uri, id);
// }
//
// @Override
// public Object doAdjustReferences(CDOReferenceAdjuster adjuster, Object value)
// {
// CDOFeatureMapEntryDataTypeImpl featureMapEntry = (CDOFeatureMapEntryDataTypeImpl)value;
// featureMapEntry.adjustReferences(adjuster);
// return value;
// }
//
// };
//
// public static final CDOType CUSTOM = new CDOTypeImpl("CUSTOM", 999, true)
// {
// @SuppressWarnings("cast")
// @Override
// public Object copyValue(Object value)
// {
// return (String)value;
// }
//
// public void writeValue(CDODataOutput out, Object value) throws IOException
// {
// out.writeString((String)value);
// }
//
// public Object readValue(CDODataInput in) throws IOException
// {
// return in.readString();
// }
// };
protected CDOTypeImpl()
{
}
public Kind getClassifierKind()
{
return Kind.TYPE;
}
@Override
public String toString()
{
return MessageFormat.format("CDOType[classifierID={0}, name={1}]", getClassifierID(), getName());
}
/**
* @author Eike Stepper
*/
public static final class Ref extends CDOClassifierImpl.Ref implements CDOType
{
public Ref(CDOPackageManager packageManager, String packageURI, int classifierID)
{
super(packageManager, packageURI, classifierID);
}
public Kind getClassifierKind()
{
return Kind.TYPE;
}
@Override
public CDOType resolve()
{
return (CDOType)super.resolve();
}
@Override
public String toString()
{
if (isResolved())
{
resolve().toString();
}
return MessageFormat.format("CDOTypeRef[packageURI={0}, classifierID={1}]", getPackageURI(), getClassifierID());
}
}
// public Object copyValue(Object value)
// {
// return value == null ? getDefaultValue() : value;
// }
//
// @Override
// public void write(CDODataOutput out) throws IOException
// {
// out.writeInt(typeID);
// }
//
// final public Object adjustReferences(CDOReferenceAdjuster adjuster, Object value)
// {
// return value == null ? null : doAdjustReferences(adjuster, value);
// }
//
// protected Object doAdjustReferences(CDOReferenceAdjuster adjuster, Object value)
// {
// return value;
// }
// /**
// * @author Eike Stepper
// */
// private static abstract class ObjectType extends CDOTypeImpl
// {
// public ObjectType(String name, int typeID)
// {
// super(name, typeID, true);
// }
//
// public final void writeValue(CDODataOutput out, Object value) throws IOException
// {
// if (value == null)
// {
// out.writeBoolean(false);
// }
// else
// {
// out.writeBoolean(true);
// doWriteValue(out, value);
// }
// }
//
// protected abstract void doWriteValue(CDODataOutput out, Object value) throws IOException;
//
// public final Object readValue(CDODataInput in) throws IOException
// {
// boolean notNull = in.readBoolean();
// if (notNull)
// {
// return doReadValue(in);
// }
//
// return null;
// }
//
// protected abstract Object doReadValue(CDODataInput in) throws IOException;
// }
}