diff options
author | Eike Stepper | 2011-05-11 16:40:55 +0000 |
---|---|---|
committer | Eike Stepper | 2011-05-11 16:40:55 +0000 |
commit | 3526172909a833dbe0bd934b2f05ca3d00a10fc2 (patch) | |
tree | 0babad7a5d020ef380bd57c6cac66c579e2d1d03 /plugins/org.eclipse.emf.cdo.common | |
parent | 266fde9b5f65f167000c143c12adb874107edadc (diff) | |
download | cdo-3526172909a833dbe0bd934b2f05ca3d00a10fc2.tar.gz cdo-3526172909a833dbe0bd934b2f05ca3d00a10fc2.tar.xz cdo-3526172909a833dbe0bd934b2f05ca3d00a10fc2.zip |
[345456] Add API to CDOQuery to get the result without specifying a class literal
https://bugs.eclipse.org/bugs/show_bug.cgi?id=345456
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.common')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/model/CDOModelUtil.java | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/model/CDOModelUtil.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/model/CDOModelUtil.java index 7bb81eb0c9..89e8239427 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/model/CDOModelUtil.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/model/CDOModelUtil.java @@ -11,6 +11,8 @@ */ package org.eclipse.emf.cdo.common.model; +import org.eclipse.emf.cdo.common.id.CDOID; +import org.eclipse.emf.cdo.common.revision.CDORevision; import org.eclipse.emf.cdo.internal.common.bundle.OM; import org.eclipse.emf.cdo.internal.common.messages.Messages; import org.eclipse.emf.cdo.internal.common.model.CDOClassInfoImpl; @@ -38,9 +40,12 @@ import org.eclipse.emf.ecore.EcorePackage; import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.FeatureMap; import org.eclipse.emf.ecore.util.FeatureMapUtil; import java.io.IOException; +import java.math.BigDecimal; +import java.math.BigInteger; import java.text.MessageFormat; import java.util.ArrayList; import java.util.Date; @@ -366,6 +371,99 @@ public final class CDOModelUtil } /** + * @since 4.0 + */ + public static CDOType getTypeOfObject(Object object) + { + if (object instanceof BigDecimal) + { + return CDOType.BIG_DECIMAL; + } + + if (object instanceof BigInteger) + { + return CDOType.BIG_INTEGER; + } + + if (object instanceof Boolean) + { + return CDOType.BOOLEAN_OBJECT; + } + + if (object instanceof Byte) + { + return CDOType.BYTE_OBJECT; + } + + if (object instanceof byte[]) + { + return CDOType.BYTE_ARRAY; + } + + if (object instanceof Character) + { + return CDOType.CHARACTER_OBJECT; + } + + if (object instanceof Date) + { + return CDOType.DATE; + } + + if (object instanceof Double) + { + return CDOType.DOUBLE_OBJECT; + } + + if (object instanceof EEnumLiteral) + { + return CDOType.ENUM_LITERAL; + } + + if (object instanceof FeatureMap.Entry) + { + return CDOType.FEATURE_MAP_ENTRY; + } + + if (object instanceof Float) + { + return CDOType.FLOAT_OBJECT; + } + + if (object instanceof Integer) + { + return CDOType.INTEGER_OBJECT; + } + + if (object instanceof Long) + { + return CDOType.LONG_OBJECT; + } + + if (object instanceof Short) + { + return CDOType.SHORT_OBJECT; + } + + if (object instanceof String) + { + return CDOType.STRING; + } + + if (object instanceof CDOID || object instanceof CDORevision) + { + return CDOType.OBJECT; + } + + if (object == null) + { + return CDOType.OBJECT; + } + + throw new IllegalArgumentException("Object type " + object.getClass().getName() + " is not supported."); + } + + /** * @since 2.0 */ public static CDOPackageInfo getPackageInfo(Object value, CDOPackageRegistry packageRegistry) |