You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2015/08/21 08:48:52 UTC
[34/45] incubator-ignite git commit: ignite-1258: renaming portalbe
internal classes
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4662feca/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableContext.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableContext.java
deleted file mode 100644
index b19a855..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableContext.java
+++ /dev/null
@@ -1,1089 +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.ignite.internal.portable;
-
-import org.apache.ignite.*;
-import org.apache.ignite.internal.*;
-import org.apache.ignite.internal.processors.cache.portable.*;
-import org.apache.ignite.internal.util.*;
-import org.apache.ignite.internal.util.lang.*;
-import org.apache.ignite.internal.util.typedef.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.marshaller.*;
-import org.apache.ignite.marshaller.optimized.*;
-import org.apache.ignite.marshaller.portable.*;
-import org.apache.ignite.portable.*;
-
-import org.jetbrains.annotations.*;
-import org.jsr166.*;
-
-import java.io.*;
-import java.math.*;
-import java.net.*;
-import java.sql.*;
-import java.util.*;
-import java.util.Date;
-import java.util.concurrent.*;
-import java.util.jar.*;
-
-/**
- * Portable context.
- */
-public class GridPortableContext implements Externalizable {
- /** */
- private static final long serialVersionUID = 0L;
-
- /** */
- static final PortableIdMapper DFLT_ID_MAPPER = new IdMapperWrapper(null);
-
- /** */
- static final PortableIdMapper BASIC_CLS_ID_MAPPER = new BasicClassIdMapper();
-
- /** */
- static final char[] LOWER_CASE_CHARS;
-
- /** */
- static final char MAX_LOWER_CASE_CHAR = 0x7e;
-
- /**
- *
- */
- static {
- LOWER_CASE_CHARS = new char[MAX_LOWER_CASE_CHAR + 1];
-
- for (char c = 0; c <= MAX_LOWER_CASE_CHAR; c++)
- LOWER_CASE_CHARS[c] = Character.toLowerCase(c);
- }
-
- /** */
- private final ConcurrentMap<Integer, Collection<Integer>> metaDataCache = new ConcurrentHashMap8<>();
-
- /** */
- private final ConcurrentMap<Class<?>, GridPortableClassDescriptor> descByCls = new ConcurrentHashMap8<>();
-
- /** */
- private final ConcurrentMap<Integer, GridPortableClassDescriptor> userTypes = new ConcurrentHashMap8<>(0);
-
- /** */
- private final Map<Integer, GridPortableClassDescriptor> predefinedTypes = new HashMap<>();
-
- /** */
- private final Set<Class> predefinedClasses = new HashSet<>();
-
- /** */
- private final Map<Class<? extends Collection>, Byte> colTypes = new HashMap<>();
-
- /** */
- private final Map<Class<? extends Map>, Byte> mapTypes = new HashMap<>();
-
- /** */
- private final Map<Integer, PortableIdMapper> mappers = new ConcurrentHashMap8<>(0);
-
- /** */
- private final Map<String, PortableIdMapper> typeMappers = new ConcurrentHashMap8<>(0);
-
- /** */
- private Map<Integer, Boolean> metaEnabled = new HashMap<>(0);
-
- /** */
- private Set<Integer> usingTs = new HashSet<>();
-
- /** */
- private GridPortableMetaDataHandler metaHnd;
-
- /** */
- private MarshallerContext marshCtx;
-
- /** */
- private String gridName;
-
- /** */
- private PortableMarshaller marsh;
-
- /** */
- private final OptimizedMarshaller optmMarsh = new OptimizedMarshaller();
-
- /**
- * For {@link Externalizable}.
- */
- public GridPortableContext() {
- // No-op.
- }
-
- /**
- * @param metaHnd Meta data handler.
- * @param gridName Grid name.
- */
- public GridPortableContext(GridPortableMetaDataHandler metaHnd, @Nullable String gridName) {
- assert metaHnd != null;
-
- this.metaHnd = metaHnd;
- this.gridName = gridName;
-
- colTypes.put(ArrayList.class, GridPortableMarshaller.ARR_LIST);
- colTypes.put(LinkedList.class, GridPortableMarshaller.LINKED_LIST);
- colTypes.put(HashSet.class, GridPortableMarshaller.HASH_SET);
- colTypes.put(LinkedHashSet.class, GridPortableMarshaller.LINKED_HASH_SET);
- colTypes.put(TreeSet.class, GridPortableMarshaller.TREE_SET);
- colTypes.put(ConcurrentSkipListSet.class, GridPortableMarshaller.CONC_SKIP_LIST_SET);
-
- mapTypes.put(HashMap.class, GridPortableMarshaller.HASH_MAP);
- mapTypes.put(LinkedHashMap.class, GridPortableMarshaller.LINKED_HASH_MAP);
- mapTypes.put(TreeMap.class, GridPortableMarshaller.TREE_MAP);
- mapTypes.put(ConcurrentHashMap.class, GridPortableMarshaller.CONC_HASH_MAP);
- mapTypes.put(ConcurrentHashMap8.class, GridPortableMarshaller.CONC_HASH_MAP);
- mapTypes.put(Properties.class, GridPortableMarshaller.PROPERTIES_MAP);
-
- registerPredefinedType(Byte.class, GridPortableMarshaller.BYTE);
- registerPredefinedType(Boolean.class, GridPortableMarshaller.BOOLEAN);
- registerPredefinedType(Short.class, GridPortableMarshaller.SHORT);
- registerPredefinedType(Character.class, GridPortableMarshaller.CHAR);
- registerPredefinedType(Integer.class, GridPortableMarshaller.INT);
- registerPredefinedType(Long.class, GridPortableMarshaller.LONG);
- registerPredefinedType(Float.class, GridPortableMarshaller.FLOAT);
- registerPredefinedType(Double.class, GridPortableMarshaller.DOUBLE);
- registerPredefinedType(String.class, GridPortableMarshaller.STRING);
- registerPredefinedType(BigDecimal.class, GridPortableMarshaller.DECIMAL);
- registerPredefinedType(Date.class, GridPortableMarshaller.DATE);
- registerPredefinedType(UUID.class, GridPortableMarshaller.UUID);
- // TODO: How to handle timestamp? It has the same ID in .Net.
- registerPredefinedType(Timestamp.class, GridPortableMarshaller.DATE);
-
- registerPredefinedType(byte[].class, GridPortableMarshaller.BYTE_ARR);
- registerPredefinedType(short[].class, GridPortableMarshaller.SHORT_ARR);
- registerPredefinedType(int[].class, GridPortableMarshaller.INT_ARR);
- registerPredefinedType(long[].class, GridPortableMarshaller.LONG_ARR);
- registerPredefinedType(float[].class, GridPortableMarshaller.FLOAT_ARR);
- registerPredefinedType(double[].class, GridPortableMarshaller.DOUBLE_ARR);
- registerPredefinedType(char[].class, GridPortableMarshaller.CHAR_ARR);
- registerPredefinedType(boolean[].class, GridPortableMarshaller.BOOLEAN_ARR);
- registerPredefinedType(BigDecimal[].class, GridPortableMarshaller.DECIMAL_ARR);
- registerPredefinedType(String[].class, GridPortableMarshaller.STRING_ARR);
- registerPredefinedType(UUID[].class, GridPortableMarshaller.UUID_ARR);
- registerPredefinedType(Date[].class, GridPortableMarshaller.DATE_ARR);
- registerPredefinedType(Object[].class, GridPortableMarshaller.OBJ_ARR);
-
- registerPredefinedType(ArrayList.class, 0);
- registerPredefinedType(LinkedList.class, 0);
- registerPredefinedType(HashSet.class, 0);
- registerPredefinedType(LinkedHashSet.class, 0);
- registerPredefinedType(TreeSet.class, 0);
- registerPredefinedType(ConcurrentSkipListSet.class, 0);
-
- registerPredefinedType(HashMap.class, 0);
- registerPredefinedType(LinkedHashMap.class, 0);
- registerPredefinedType(TreeMap.class, 0);
- registerPredefinedType(ConcurrentHashMap.class, 0);
- registerPredefinedType(ConcurrentHashMap8.class, 0);
-
- registerPredefinedType(GridMapEntry.class, 60);
- registerPredefinedType(IgniteBiTuple.class, 61);
- registerPredefinedType(T2.class, 62);
-
- registerPredefinedType(GridPortableObjectImpl.class, 63);
-
- registerPredefinedType(GridPortableMetaDataImpl.class, 64);
-
-// TODO: IGNITE-1258
-// registerPredefinedType(DrSenderAttributes.class, 65);
-// registerPredefinedType(DrSenderRemoteAttributes.class, 66);
-//
-// registerPredefinedType(InteropClusterNode.class, 67);
-// registerPredefinedType(InteropClusterMetrics.class, 68);
-// registerPredefinedType(InteropTransactionMetrics.class, 69);
-// registerPredefinedType(InteropMetadata.class, 70);
-//
-// registerPredefinedType(InteropDotNetConfiguration.class, 71);
-// registerPredefinedType(InteropDotNetPortableConfiguration.class, 72);
-// registerPredefinedType(InteropDotNetPortableTypeConfiguration.class, 73);
-// registerPredefinedType(InteropIgniteProxy.class, 74);
-// registerPredefinedType(InteropCacheMetrics.class, 75);
-// registerPredefinedType(InteropProductLicence.class, 78);
- }
-
- /**
- * @param marsh Portable marshaller.
- * @throws PortableException In case of error.
- */
- public void configure(PortableMarshaller marsh) throws PortableException {
- if (marsh == null)
- return;
-
- this.marsh = marsh;
- marshCtx = marsh.getContext();
-
- assert marshCtx != null;
-
- optmMarsh.setContext(marshCtx);
-
- PortableIdMapper globalIdMapper = marsh.getIdMapper();
- PortableSerializer globalSerializer = marsh.getSerializer();
- boolean globalUseTs = marsh.isUseTimestamp();
- boolean globalMetaDataEnabled = marsh.isMetaDataEnabled();
- boolean globalKeepDeserialized = marsh.isKeepDeserialized();
-
- TypeDescriptors descs = new TypeDescriptors();
-
- if (marsh.getClassNames() != null) {
- PortableIdMapper idMapper = new IdMapperWrapper(globalIdMapper);
-
- for (String clsName : marsh.getClassNames()) {
- if (clsName.endsWith(".*")) { // Package wildcard
- String pkgName = clsName.substring(0, clsName.length() - 2);
-
- for (String clsName0 : classesInPackage(pkgName))
- descs.add(clsName0, idMapper, null, null, globalUseTs, globalMetaDataEnabled,
- globalKeepDeserialized, true);
- }
- else // Regular single class
- descs.add(clsName, idMapper, null, null, globalUseTs, globalMetaDataEnabled,
- globalKeepDeserialized, true);
- }
- }
-
- if (marsh.getTypeConfigurations() != null) {
- for (PortableTypeConfiguration typeCfg : marsh.getTypeConfigurations()) {
- String clsName = typeCfg.getClassName();
-
- if (clsName == null)
- throw new PortableException("Class name is required for portable type configuration.");
-
- PortableIdMapper idMapper = globalIdMapper;
-
- if (typeCfg.getIdMapper() != null)
- idMapper = typeCfg.getIdMapper();
-
- idMapper = new IdMapperWrapper(idMapper);
-
- PortableSerializer serializer = globalSerializer;
-
- if (typeCfg.getSerializer() != null)
- serializer = typeCfg.getSerializer();
-
- boolean useTs = typeCfg.isUseTimestamp() != null ? typeCfg.isUseTimestamp() : globalUseTs;
- boolean metaDataEnabled = typeCfg.isMetaDataEnabled() != null ? typeCfg.isMetaDataEnabled() :
- globalMetaDataEnabled;
- boolean keepDeserialized = typeCfg.isKeepDeserialized() != null ? typeCfg.isKeepDeserialized() :
- globalKeepDeserialized;
-
- if (clsName.endsWith(".*")) {
- String pkgName = clsName.substring(0, clsName.length() - 2);
-
- for (String clsName0 : classesInPackage(pkgName))
- descs.add(clsName0, idMapper, serializer, typeCfg.getAffinityKeyFieldName(), useTs,
- metaDataEnabled, keepDeserialized, true);
- }
- else
- descs.add(clsName, idMapper, serializer, typeCfg.getAffinityKeyFieldName(), useTs,
- metaDataEnabled, keepDeserialized, false);
- }
- }
-
- for (TypeDescriptor desc : descs.descriptors())
- registerUserType(desc.clsName, desc.idMapper, desc.serializer, desc.affKeyFieldName, desc.useTs,
- desc.metadataEnabled, desc.keepDeserialized);
- }
-
- /**
- * @param pkgName Package name.
- * @return Class names.
- */
- @SuppressWarnings("ConstantConditions")
- private static Iterable<String> classesInPackage(String pkgName) {
- assert pkgName != null;
-
- Collection<String> clsNames = new ArrayList<>();
-
- ClassLoader ldr = U.gridClassLoader();
-
- if (ldr instanceof URLClassLoader) {
- String pkgPath = pkgName.replaceAll("\\.", "/");
-
- URL[] urls = ((URLClassLoader)ldr).getURLs();
-
- for (URL url : urls) {
- String proto = url.getProtocol().toLowerCase();
-
- if ("file".equals(proto)) {
- try {
- File cpElement = new File(url.toURI());
-
- if (cpElement.isDirectory()) {
- File pkgDir = new File(cpElement, pkgPath);
-
- if (pkgDir.isDirectory()) {
- for (File file : pkgDir.listFiles()) {
- String fileName = file.getName();
-
- if (file.isFile() && fileName.toLowerCase().endsWith(".class"))
- clsNames.add(pkgName + '.' + fileName.substring(0, fileName.length() - 6));
- }
- }
- }
- else if (cpElement.isFile()) {
- try {
- JarFile jar = new JarFile(cpElement);
-
- Enumeration<JarEntry> entries = jar.entries();
-
- while (entries.hasMoreElements()) {
- String entry = entries.nextElement().getName();
-
- if (entry.startsWith(pkgPath) && entry.endsWith(".class")) {
- String clsName = entry.substring(pkgPath.length() + 1, entry.length() - 6);
-
- if (!clsName.contains("/") && !clsName.contains("\\"))
- clsNames.add(pkgName + '.' + clsName);
- }
- }
- }
- catch (IOException ignored) {
- // No-op.
- }
- }
- }
- catch (URISyntaxException ignored) {
- // No-op.
- }
- }
- }
- }
-
- return clsNames;
- }
-
- /**
- * @param cls Class.
- * @return Class descriptor.
- * @throws PortableException In case of error.
- */
- public GridPortableClassDescriptor descriptorForClass(Class<?> cls)
- throws PortableException {
- assert cls != null;
-
- GridPortableClassDescriptor desc = descByCls.get(cls);
-
- if (desc == null || !desc.isRegistered())
- desc = registerClassDescriptor(cls);
-
- return desc;
- }
-
- /**
- * @param userType User type or not.
- * @param typeId Type ID.
- * @param ldr Class loader.
- * @return Class descriptor.
- */
- public GridPortableClassDescriptor descriptorForTypeId(boolean userType, int typeId, ClassLoader ldr) {
- assert typeId != GridPortableMarshaller.UNREGISTERED_TYPE_ID;
-
- GridPortableClassDescriptor desc = userType ? userTypes.get(typeId) : predefinedTypes.get(typeId);
-
- if (desc != null)
- return desc;
-
- Class cls;
-
- try {
- cls = marshCtx.getClass(typeId, ldr);
-
- desc = descByCls.get(cls);
- }
- catch (ClassNotFoundException e) {
- throw new PortableInvalidClassException(e);
- }
- catch (IgniteCheckedException e) {
- throw new PortableException("Failed resolve class for ID: " + typeId, e);
- }
-
- if (desc == null) {
- desc = registerClassDescriptor(cls);
-
- assert desc.typeId() == typeId;
- }
-
- return desc;
- }
-
- /**
- * Creates and registers {@link GridPortableClassDescriptor} for the given {@code class}.
- *
- * @param cls Class.
- * @return Class descriptor.
- */
- private GridPortableClassDescriptor registerClassDescriptor(Class<?> cls) {
- GridPortableClassDescriptor desc;
-
- String clsName = cls.getName();
-
- if (marshCtx.isSystemType(clsName)) {
- desc = new GridPortableClassDescriptor(this,
- cls,
- false,
- clsName.hashCode(),
- clsName,
- BASIC_CLS_ID_MAPPER,
- null,
- marsh.isUseTimestamp(),
- marsh.isMetaDataEnabled(),
- marsh.isKeepDeserialized());
-
- GridPortableClassDescriptor old = descByCls.putIfAbsent(cls, desc);
-
- if (old != null)
- desc = old;
- }
- else
- desc = registerUserClassDescriptor(cls);
-
- return desc;
- }
-
- /**
- * Creates and registers {@link GridPortableClassDescriptor} for the given user {@code class}.
- *
- * @param cls Class.
- * @return Class descriptor.
- */
- private GridPortableClassDescriptor registerUserClassDescriptor(Class<?> cls) {
- GridPortableClassDescriptor desc;
-
- boolean registered;
-
- String typeName = typeName(cls.getName());
-
- PortableIdMapper idMapper = idMapper(typeName);
-
- int typeId = idMapper.typeId(typeName);
-
- try {
- registered = marshCtx.registerClass(typeId, cls);
-
- } catch (IgniteCheckedException e) {
- throw new PortableException("Failed to register class.", e);
- }
-
- desc = new GridPortableClassDescriptor(this,
- cls,
- true,
- typeId,
- typeName,
- idMapper,
- null,
- marsh.isUseTimestamp(),
- marsh.isMetaDataEnabled(),
- marsh.isKeepDeserialized(),
- registered);
-
- // perform put() instead of putIfAbsent() because "registered" flag may have been changed.
- userTypes.put(typeId, desc);
- descByCls.put(cls, desc);
-
- return desc;
- }
-
- /**
- * @param cls Collection class.
- * @return Collection type ID.
- */
- public byte collectionType(Class<? extends Collection> cls) {
- assert cls != null;
-
- Byte type = colTypes.get(cls);
-
- if (type != null)
- return type;
-
- return Set.class.isAssignableFrom(cls) ? GridPortableMarshaller.USER_SET : GridPortableMarshaller.USER_COL;
- }
-
- /**
- * @param cls Map class.
- * @return Map type ID.
- */
- public byte mapType(Class<? extends Map> cls) {
- assert cls != null;
-
- Byte type = mapTypes.get(cls);
-
- return type != null ? type : GridPortableMarshaller.USER_COL;
- }
-
- /**
- * @param typeName Type name.
- * @return Type ID.
- */
- public int typeId(String typeName) {
- int id;
-
- if (marshCtx.isSystemType(typeName))
- id = typeName.hashCode();
-
- else {
- typeName = typeName(typeName);
-
- id = idMapper(typeName).typeId(typeName);
- }
-
- return id;
- }
-
- /**
- * @param cls Class.
- * @return Type ID.
- * @throws PortableException In case of error.
- */
- public Type typeId(Class cls) throws PortableException {
- String clsName = cls.getName();
-
- if (marshCtx.isSystemType(clsName))
- return new Type(clsName.hashCode(), true);
-
- if (predefinedClasses.contains(cls))
- return new Type(DFLT_ID_MAPPER.typeId(typeName(clsName)), true);
-
- GridPortableClassDescriptor desc = descByCls.get(cls);
-
- boolean registered = desc != null && desc.isRegistered();
-
- if (!registered)
- // forces to register the class and fill up all required data structures
- desc = registerUserClassDescriptor(cls);
-
- return new Type(desc.typeId(), desc.isRegistered());
- }
-
- /**
- * @param typeId Type ID.
- * @param fieldName Field name.
- * @return Field ID.
- */
- public int fieldId(int typeId, String fieldName) {
- return idMapper(typeId).fieldId(typeId, fieldName);
- }
-
- /**
- * @param typeId Type ID.
- * @return Instance of ID mapper.
- */
- public PortableIdMapper idMapper(int typeId) {
- PortableIdMapper idMapper = mappers.get(typeId);
-
- if (idMapper != null)
- return idMapper;
-
- if (userTypes.containsKey(typeId) || predefinedTypes.containsKey(typeId))
- return DFLT_ID_MAPPER;
-
- return BASIC_CLS_ID_MAPPER;
- }
-
- /**
- * @param typeName Type name.
- * @return Instance of ID mapper.
- */
- private PortableIdMapper idMapper(String typeName) {
- PortableIdMapper idMapper = typeMappers.get(typeName);
-
- return idMapper != null ? idMapper : DFLT_ID_MAPPER;
- }
-
- /** {@inheritDoc} */
- @Override public void writeExternal(ObjectOutput out) throws IOException {
- U.writeString(out, gridName);
- }
-
- /** {@inheritDoc} */
- @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- gridName = U.readString(in);
- }
-
- /**
- * @return Portable context.
- * @throws ObjectStreamException In case of error.
- */
- protected Object readResolve() throws ObjectStreamException {
- try {
- IgniteKernal g = IgnitionEx.gridx(gridName);
-
- if (g == null)
- throw new IllegalStateException("Failed to find grid for name: " + gridName);
-
- return ((CacheObjectPortableProcessorImpl)g.context().cacheObjects()).portableContext();
- }
- catch (IllegalStateException e) {
- throw U.withCause(new InvalidObjectException(e.getMessage()), e);
- }
- }
-
- /**
- * @param cls Class.
- * @param id Type ID.
- * @return GridPortableClassDescriptor.
- */
- private GridPortableClassDescriptor registerPredefinedType(Class<?> cls, int id) {
- GridPortableClassDescriptor desc = new GridPortableClassDescriptor(
- this,
- cls,
- false,
- id,
- typeName(cls.getName()),
- DFLT_ID_MAPPER,
- null,
- false,
- false,
- false
- );
-
- predefinedClasses.add(cls);
-
- predefinedTypes.put(id, desc);
- descByCls.put(cls, desc);
-
- return desc;
- }
-
- /**
- * @param clsName Class name.
- * @param idMapper ID mapper.
- * @param serializer Serializer.
- * @param affKeyFieldName Affinity key field name.
- * @param useTs Use timestamp flag.
- * @param metaDataEnabled Metadata enabled flag.
- * @param keepDeserialized Keep deserialized flag.
- * @throws PortableException In case of error.
- */
- @SuppressWarnings("ErrorNotRethrown")
- public void registerUserType(String clsName,
- PortableIdMapper idMapper,
- @Nullable PortableSerializer serializer,
- @Nullable String affKeyFieldName,
- boolean useTs,
- boolean metaDataEnabled,
- boolean keepDeserialized)
- throws PortableException {
- assert idMapper != null;
-
- Class<?> cls = null;
-
- try {
- cls = Class.forName(clsName);
- }
- catch (ClassNotFoundException | NoClassDefFoundError ignored) {
- // No-op.
- }
-
- int id = idMapper.typeId(clsName);
-
- if (mappers.put(id, idMapper) != null)
- throw new PortableException("Duplicate type ID [clsName=" + clsName + ", id=" + id + ']');
-
- if (useTs)
- usingTs.add(id);
-
- String typeName = typeName(clsName);
-
- typeMappers.put(typeName, idMapper);
-
- metaEnabled.put(id, metaDataEnabled);
-
- Map<String, String> fieldsMeta = null;
-
- if (cls != null) {
- GridPortableClassDescriptor desc = new GridPortableClassDescriptor(
- this,
- cls,
- true,
- id,
- typeName,
- idMapper,
- serializer,
- useTs,
- metaDataEnabled,
- keepDeserialized);
-
- fieldsMeta = desc.fieldsMeta();
-
- userTypes.put(id, desc);
- descByCls.put(cls, desc);
- }
-
- metaHnd.addMeta(id, new GridPortableMetaDataImpl(typeName, fieldsMeta, affKeyFieldName));
- }
-
- /**
- * @param typeId Type ID.
- * @return Meta data.
- * @throws PortableException In case of error.
- */
- @Nullable public PortableMetadata metaData(int typeId) throws PortableException {
- return metaHnd != null ? metaHnd.metadata(typeId) : null;
- }
-
- /**
- * @return Whether meta data is globally enabled.
- */
- boolean isMetaDataEnabled() {
- return marsh.isMetaDataEnabled();
- }
-
- /**
- * @param typeId Type ID.
- * @return Whether meta data is enabled.
- */
- boolean isMetaDataEnabled(int typeId) {
- Boolean enabled = metaEnabled.get(typeId);
-
- return enabled != null ? enabled : true;
- }
-
- /**
- * @param typeId Type ID.
- * @param metaHashSum Meta data hash sum.
- * @return Whether meta is changed.
- */
- boolean isMetaDataChanged(int typeId, @Nullable Integer metaHashSum) {
- if (metaHashSum == null)
- return false;
-
- Collection<Integer> hist = metaDataCache.get(typeId);
-
- if (hist == null) {
- Collection<Integer> old = metaDataCache.putIfAbsent(typeId, hist = new GridConcurrentHashSet<>());
-
- if (old != null)
- hist = old;
- }
-
- return hist.add(metaHashSum);
- }
-
- /**
- * @param typeId Type ID.
- * @param typeName Type name.
- * @param fields Fields map.
- * @throws PortableException In case of error.
- */
- void updateMetaData(int typeId, String typeName, Map<String, String> fields) throws PortableException {
- updateMetaData(typeId, new GridPortableMetaDataImpl(typeName, fields, null));
- }
-
- /**
- * @param typeId Type ID.
- * @param meta Meta data.
- * @throws PortableException In case of error.
- */
- public void updateMetaData(int typeId, GridPortableMetaDataImpl meta) throws PortableException {
- metaHnd.addMeta(typeId, meta);
- }
-
- /**
- * @return Use timestamp flag.
- */
- public boolean isUseTimestamp() {
- return marsh.isUseTimestamp();
- }
-
- /**
- * @param typeId Type ID.
- * @return If timestamp used.
- */
- public boolean isUseTimestamp(int typeId) {
- return usingTs.contains(typeId);
- }
-
- /**
- * @return Whether to convert string to UTF8 bytes.
- */
- public boolean isConvertString() {
- return marsh.isConvertStringToBytes();
- }
-
- /**
- * Returns whether {@code cls} is predefined in the context or not.
- *
- * @param cls Class.
- * @return {@code true} if predefined, {@code false} otherwise.
- */
- public boolean isPredefinedClass(Class<?> cls) {
- return predefinedClasses.contains(cls);
- }
-
- /**
- * Returns instance of {@link OptimizedMarshaller}.
- *
- * @return Optimized marshaller.
- */
- OptimizedMarshaller optimizedMarsh() {
- return optmMarsh;
- }
-
- /**
- * @param clsName Class name.
- * @return Type name.
- */
- public static String typeName(String clsName) {
- assert clsName != null;
-
- int idx = clsName.lastIndexOf('$');
-
- String typeName;
-
- if (idx >= 0) {
- typeName = clsName.substring(idx + 1);
-
- try {
- Integer.parseInt(typeName);
-
- // This is an anonymous class. Don't cut off enclosing class name for it.
- idx = -1;
- }
- catch (NumberFormatException e) {
- return typeName;
- }
- }
-
- if (idx < 0)
- idx = clsName.lastIndexOf('.');
-
- return idx >= 0 ? clsName.substring(idx + 1) : clsName;
- }
-
- /**
- * @param str String.
- * @return Hash code for given string converted to lower case.
- */
- private static int lowerCaseHashCode(String str) {
- int len = str.length();
-
- int h = 0;
-
- for (int i = 0; i < len; i++) {
- int c = str.charAt(i);
-
- c = c <= MAX_LOWER_CASE_CHAR ? LOWER_CASE_CHARS[c] : Character.toLowerCase(c);
-
- h = 31 * h + c;
- }
-
- return h;
- }
-
- /**
- */
- private static class IdMapperWrapper implements PortableIdMapper {
- /** */
- private final PortableIdMapper mapper;
-
- /**
- * @param mapper Custom ID mapper.
- */
- private IdMapperWrapper(@Nullable PortableIdMapper mapper) {
- this.mapper = mapper;
- }
-
- /** {@inheritDoc} */
- @Override public int typeId(String clsName) {
- int id = 0;
-
- if (mapper != null)
- id = mapper.typeId(clsName);
-
- return id != 0 ? id : lowerCaseHashCode(typeName(clsName));
- }
-
- /** {@inheritDoc} */
- @Override public int fieldId(int typeId, String fieldName) {
- int id = 0;
-
- if (mapper != null)
- id = mapper.fieldId(typeId, fieldName);
-
- return id != 0 ? id : lowerCaseHashCode(fieldName);
- }
- }
-
- private static class BasicClassIdMapper implements PortableIdMapper {
- /** {@inheritDoc} */
- @Override public int typeId(String clsName) {
- return clsName.hashCode();
- }
-
- /** {@inheritDoc} */
- @Override public int fieldId(int typeId, String fieldName) {
- return lowerCaseHashCode(fieldName);
- }
- }
- /**
- * Type descriptors.
- */
- private static class TypeDescriptors {
- /** Descriptors map. */
- private final Map<String, TypeDescriptor> descs = new HashMap<>();
-
- /**
- * Add type descriptor.
- *
- * @param clsName Class name.
- * @param idMapper ID mapper.
- * @param serializer Serializer.
- * @param affKeyFieldName Affinity key field name.
- * @param useTs Use timestamp flag.
- * @param metadataEnabled Metadata enabled flag.
- * @param keepDeserialized Keep deserialized flag.
- * @param canOverride Whether this descriptor can be override.
- * @throws PortableException If failed.
- */
- private void add(String clsName,
- PortableIdMapper idMapper,
- PortableSerializer serializer,
- String affKeyFieldName,
- boolean useTs,
- boolean metadataEnabled,
- boolean keepDeserialized,
- boolean canOverride)
- throws PortableException {
- TypeDescriptor desc = new TypeDescriptor(clsName,
- idMapper,
- serializer,
- affKeyFieldName,
- useTs,
- metadataEnabled,
- keepDeserialized,
- canOverride);
-
- TypeDescriptor oldDesc = descs.get(clsName);
-
- if (oldDesc == null)
- descs.put(clsName, desc);
- else
- oldDesc.override(desc);
- }
-
- /**
- * Get all collected descriptors.
- *
- * @return Descriptors.
- */
- private Iterable<TypeDescriptor> descriptors() {
- return descs.values();
- }
- }
-
- /**
- * Type descriptor.
- */
- private static class TypeDescriptor {
- /** Class name. */
- private final String clsName;
-
- /** ID mapper. */
- private PortableIdMapper idMapper;
-
- /** Serializer. */
- private PortableSerializer serializer;
-
- /** Affinity key field name. */
- private String affKeyFieldName;
-
- /** Use timestamp flag. */
- private boolean useTs;
-
- /** Metadata enabled flag. */
- private boolean metadataEnabled;
-
- /** Keep deserialized flag. */
- private boolean keepDeserialized;
-
- /** Whether this descriptor can be override. */
- private boolean canOverride;
-
- /**
- * Constructor.
- *
- * @param clsName Class name.
- * @param idMapper ID mapper.
- * @param serializer Serializer.
- * @param affKeyFieldName Affinity key field name.
- * @param useTs Use timestamp flag.
- * @param metadataEnabled Metadata enabled flag.
- * @param keepDeserialized Keep deserialized flag.
- * @param canOverride Whether this descriptor can be override.
- */
- private TypeDescriptor(String clsName, PortableIdMapper idMapper, PortableSerializer serializer,
- String affKeyFieldName, boolean useTs, boolean metadataEnabled, boolean keepDeserialized,
- boolean canOverride) {
- this.clsName = clsName;
- this.idMapper = idMapper;
- this.serializer = serializer;
- this.affKeyFieldName = affKeyFieldName;
- this.useTs = useTs;
- this.metadataEnabled = metadataEnabled;
- this.keepDeserialized = keepDeserialized;
- this.canOverride = canOverride;
- }
-
- /**
- * Override portable class descriptor.
- *
- * @param other Other descriptor.
- * @throws PortableException If failed.
- */
- private void override(TypeDescriptor other) throws PortableException {
- assert clsName.equals(other.clsName);
-
- if (canOverride) {
- idMapper = other.idMapper;
- serializer = other.serializer;
- affKeyFieldName = other.affKeyFieldName;
- useTs = other.useTs;
- metadataEnabled = other.metadataEnabled;
- keepDeserialized = other.keepDeserialized;
- canOverride = other.canOverride;
- }
- else if (!other.canOverride)
- throw new PortableException("Duplicate explicit class definition in configuration: " + clsName);
- }
- }
-
- /**
- * Type id wrapper.
- */
- static class Type {
- /** Type id*/
- private int id;
-
- /** Whether the following type is registered in a cache or not */
- private boolean registered;
-
- public Type(int id, boolean registered) {
- this.id = id;
- this.registered = registered;
- }
-
- public int id() {
- return id;
- }
-
- public boolean registered() {
- return registered;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4662feca/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableEnumArrayLazyValue.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableEnumArrayLazyValue.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableEnumArrayLazyValue.java
deleted file mode 100644
index adc9959..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableEnumArrayLazyValue.java
+++ /dev/null
@@ -1,111 +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.ignite.internal.portable;
-
-import org.apache.ignite.internal.util.typedef.internal.*;
-import org.apache.ignite.portable.*;
-
-/**
- *
- */
-class GridPortableEnumArrayLazyValue extends GridPortableAbstractLazyValue {
- /** */
- private final int len;
-
- /** */
- private final int compTypeId;
-
- /** */
- private final String clsName;
-
- /**
- * @param reader Reader.
- */
- protected GridPortableEnumArrayLazyValue(GridPortableBuilderReader reader) {
- super(reader, reader.position() - 1);
-
- int typeId = reader.readInt();
-
- if (typeId == GridPortableMarshaller.UNREGISTERED_TYPE_ID) {
- clsName = reader.readString();
-
- Class cls;
-
- try {
- // TODO: GG-10396 - Is class loader needed here?
- cls = U.forName(reader.readString(), null);
- }
- catch (ClassNotFoundException e) {
- throw new PortableInvalidClassException("Failed to load the class: " + clsName, e);
- }
-
- compTypeId = reader.portableContext().descriptorForClass(cls).typeId();
- }
- else {
- compTypeId = typeId;
- clsName = null;
- }
-
- int size = reader.readInt();
-
- for (int i = 0; i < size; i++)
- reader.skipValue();
-
- len = reader.position() - valOff;
- }
-
- /** {@inheritDoc} */
- @Override protected Object init() {
- reader.position(valOff + 1);
-
- //skipping component type id
- reader.readInt();
-
- int size = reader.readInt();
-
- GridPortableBuilderEnum[] res = new GridPortableBuilderEnum[size];
-
- for (int i = 0; i < size; i++) {
- byte flag = reader.readByte();
-
- if (flag == GridPortableMarshaller.NULL)
- continue;
-
- if (flag != GridPortableMarshaller.ENUM)
- throw new PortableException("Invalid flag value: " + flag);
-
- res[i] = new GridPortableBuilderEnum(reader);
- }
-
- return res;
- }
-
- /** {@inheritDoc} */
- @Override public void writeTo(GridPortableWriterExImpl writer, GridPortableBuilderSerializer ctx) {
- if (val != null) {
- if (clsName != null)
- ctx.writeArray(writer, GridPortableMarshaller.ENUM_ARR, (Object[])val, clsName);
- else
- ctx.writeArray(writer, GridPortableMarshaller.ENUM_ARR, (Object[])val, compTypeId);
-
- return;
- }
-
- writer.write(reader.array(), valOff, len);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4662feca/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazyArrayList.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazyArrayList.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazyArrayList.java
deleted file mode 100644
index 5be228e..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazyArrayList.java
+++ /dev/null
@@ -1,156 +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.ignite.internal.portable;
-
-import java.util.*;
-
-/**
- *
- */
-class GridPortableLazyArrayList extends AbstractList<Object> implements GridPortableBuilderSerializationAware {
- /** */
- private final GridPortableBuilderReader reader;
-
- /** */
- private final int off;
-
- /** */
- private List<Object> delegate;
-
- /**
- * @param reader Reader.
- * @param size Size,
- */
- GridPortableLazyArrayList(GridPortableBuilderReader reader, int size) {
- this.reader = reader;
- off = reader.position() - 1/* flag */ - 4/* size */ - 1/* col type */;
-
- assert size >= 0;
-
- for (int i = 0; i < size; i++)
- reader.skipValue();
- }
-
- /**
- *
- */
- private void ensureDelegateInit() {
- if (delegate == null) {
- int size = reader.readIntAbsolute(off + 1);
-
- reader.position(off + 1/* flag */ + 4/* size */ + 1/* col type */);
-
- delegate = new ArrayList<>(size);
-
- for (int i = 0; i < size; i++)
- delegate.add(reader.parseValue());
- }
- }
-
- /** {@inheritDoc} */
- @Override public Object get(int idx) {
- ensureDelegateInit();
-
- return GridPortableUtils.unwrapLazy(delegate.get(idx));
- }
-
- /** {@inheritDoc} */
- @Override public boolean add(Object o) {
- ensureDelegateInit();
-
- return delegate.add(o);
- }
-
- /** {@inheritDoc} */
- @Override public void add(int idx, Object element) {
- ensureDelegateInit();
-
- delegate.add(idx, element);
- }
-
- /** {@inheritDoc} */
- @Override public Object set(int idx, Object element) {
- ensureDelegateInit();
-
- return GridPortableUtils.unwrapLazy(delegate.set(idx, element));
- }
-
- /** {@inheritDoc} */
- @Override public Object remove(int idx) {
- ensureDelegateInit();
-
- return GridPortableUtils.unwrapLazy(delegate.remove(idx));
- }
-
- /** {@inheritDoc} */
- @Override public void clear() {
- if (delegate == null)
- delegate = new ArrayList<>();
- else
- delegate.clear();
- }
-
- /** {@inheritDoc} */
- @Override public boolean addAll(int idx, Collection<?> c) {
- return delegate.addAll(idx, c);
- }
-
- /** {@inheritDoc} */
- @Override protected void removeRange(int fromIdx, int toIdx) {
- ensureDelegateInit();
-
- delegate.subList(fromIdx, toIdx).clear();
- }
-
- /** {@inheritDoc} */
- @Override public int size() {
- if (delegate == null)
- return reader.readIntAbsolute(off + 1);
-
- return delegate.size();
- }
-
- /** {@inheritDoc} */
- @Override public void writeTo(GridPortableWriterExImpl writer, GridPortableBuilderSerializer ctx) {
- if (delegate == null) {
- int size = reader.readIntAbsolute(off + 1);
-
- int hdrSize = 1 /* flag */ + 4 /* size */ + 1 /* col type */;
-
- writer.write(reader.array(), off, hdrSize);
-
- reader.position(off + hdrSize);
-
- for (int i = 0; i < size; i++) {
- Object o = reader.parseValue();
-
- ctx.writeValue(writer, o);
- }
- }
- else {
- writer.writeByte(GridPortableMarshaller.COL);
- writer.writeInt(delegate.size());
-
- byte colType = reader.array()[off + 1 /* flag */ + 4 /* size */];
- writer.writeByte(colType);
-
- for (Object o : delegate)
- ctx.writeValue(writer, o);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4662feca/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazyLinkedList.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazyLinkedList.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazyLinkedList.java
deleted file mode 100644
index 812d3e2..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazyLinkedList.java
+++ /dev/null
@@ -1,210 +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.ignite.internal.portable;
-
-import java.util.*;
-
-/**
- *
- */
-class GridPortableLazyLinkedList extends AbstractList<Object> implements GridPortableBuilderSerializationAware {
- /** */
- private final GridPortableBuilderReader reader;
-
- /** */
- private final int off;
-
- /** */
- private List<Object> delegate;
-
- /**
- * @param reader Reader.
- * @param size Size,
- */
- GridPortableLazyLinkedList(GridPortableBuilderReader reader, int size) {
- this.reader = reader;
- off = reader.position() - 1/* flag */ - 4/* size */ - 1/* col type */;
-
- assert size >= 0;
-
- for (int i = 0; i < size; i++)
- reader.skipValue();
- }
-
- /**
- *
- */
- private void ensureDelegateInit() {
- if (delegate == null) {
- int size = reader.readIntAbsolute(off + 1);
-
- reader.position(off + 1/* flag */ + 4/* size */ + 1/* col type */);
-
- delegate = new LinkedList<>();
-
- for (int i = 0; i < size; i++)
- delegate.add(reader.parseValue());
- }
- }
-
- /** {@inheritDoc} */
- @Override public Object get(int idx) {
- ensureDelegateInit();
-
- return GridPortableUtils.unwrapLazy(delegate.get(idx));
- }
-
- /** {@inheritDoc} */
- @Override public boolean add(Object o) {
- ensureDelegateInit();
-
- return delegate.add(o);
- }
-
- /** {@inheritDoc} */
- @Override public void add(int idx, Object element) {
- ensureDelegateInit();
-
- delegate.add(idx, element);
- }
-
- /** {@inheritDoc} */
- @Override public Object set(int idx, Object element) {
- ensureDelegateInit();
-
- return GridPortableUtils.unwrapLazy(delegate.set(idx, element));
- }
-
- /** {@inheritDoc} */
- @Override public Object remove(int idx) {
- ensureDelegateInit();
-
- return GridPortableUtils.unwrapLazy(delegate.remove(idx));
- }
-
- /** {@inheritDoc} */
- @Override public void clear() {
- if (delegate == null)
- delegate = new LinkedList<>();
- else
- delegate.clear();
- }
-
- /** {@inheritDoc} */
- @Override public boolean addAll(int idx, Collection<?> c) {
- ensureDelegateInit();
-
- return delegate.addAll(idx, c);
- }
-
- /** {@inheritDoc} */
- @Override protected void removeRange(int fromIdx, int toIdx) {
- ensureDelegateInit();
-
- delegate.subList(fromIdx, toIdx).clear();
- }
-
- /** {@inheritDoc} */
- @Override public int size() {
- if (delegate == null)
- return reader.readIntAbsolute(off + 1);
-
- return delegate.size();
- }
-
- /** {@inheritDoc} */
- @Override public ListIterator<Object> listIterator(final int idx) {
- ensureDelegateInit();
-
- return new ListIterator<Object>() {
- /** */
- private final ListIterator<Object> delegate = GridPortableLazyLinkedList.super.listIterator(idx);
-
- @Override public boolean hasNext() {
- return delegate.hasNext();
- }
-
- @Override public Object next() {
- return GridPortableUtils.unwrapLazy(delegate.next());
- }
-
- @Override public boolean hasPrevious() {
- return delegate.hasPrevious();
- }
-
- @Override public Object previous() {
- return GridPortableUtils.unwrapLazy(delegate.previous());
- }
-
- @Override public int nextIndex() {
- return delegate.nextIndex();
- }
-
- @Override public int previousIndex() {
- return delegate.previousIndex();
- }
-
- @Override public void remove() {
- delegate.remove();
- }
-
- @Override public void set(Object o) {
- delegate.set(o);
- }
-
- @Override public void add(Object o) {
- delegate.add(o);
- }
- };
- }
-
- /** {@inheritDoc} */
- @Override public Iterator<Object> iterator() {
- ensureDelegateInit();
-
- return GridPortableUtils.unwrapLazyIterator(super.iterator());
- }
-
- /** {@inheritDoc} */
- @Override public void writeTo(GridPortableWriterExImpl writer, GridPortableBuilderSerializer ctx) {
- if (delegate == null) {
- int size = reader.readIntAbsolute(off + 1);
-
- int hdrSize = 1 /* flag */ + 4 /* size */ + 1 /* col type */;
- writer.write(reader.array(), off, hdrSize);
-
- reader.position(off + hdrSize);
-
- for (int i = 0; i < size; i++) {
- Object o = reader.parseValue();
-
- ctx.writeValue(writer, o);
- }
- }
- else {
- writer.writeByte(GridPortableMarshaller.COL);
- writer.writeInt(delegate.size());
-
- byte colType = reader.array()[off + 1 /* flag */ + 4 /* size */];
- writer.writeByte(colType);
-
- for (Object o : delegate)
- ctx.writeValue(writer, o);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4662feca/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazyMap.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazyMap.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazyMap.java
deleted file mode 100644
index 46e90ee..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazyMap.java
+++ /dev/null
@@ -1,214 +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.ignite.internal.portable;
-
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-
-/**
- *
- */
-class GridPortableLazyMap extends AbstractMap<Object, Object> implements GridPortableBuilderSerializationAware {
- /** */
- private final GridPortableBuilderReader reader;
-
- /** */
- private final int off;
-
- /** */
- private Map<Object, Object> delegate;
-
- /**
- * @param reader Reader.
- * @param off Offset.
- */
- private GridPortableLazyMap(GridPortableBuilderReader reader, int off) {
- this.reader = reader;
- this.off = off;
- }
-
- /**
- * @param reader Reader.
- * @return GridPortableLazyMap.
- */
- @Nullable public static GridPortableLazyMap parseMap(GridPortableBuilderReader reader) {
- int off = reader.position() - 1;
-
- int size = reader.readInt();
-
- reader.skip(1); // map type.
-
- for (int i = 0; i < size; i++) {
- reader.skipValue(); // skip key
- reader.skipValue(); // skip value
- }
-
- return new GridPortableLazyMap(reader, off);
- }
-
- /**
- *
- */
- private void ensureDelegateInit() {
- if (delegate == null) {
- int size = reader.readIntAbsolute(off + 1);
-
- reader.position(off + 1/* flag */ + 4/* size */ + 1/* col type */);
-
- delegate = new LinkedHashMap<>();
-
- for (int i = 0; i < size; i++)
- delegate.put(GridPortableUtils.unwrapLazy(reader.parseValue()), reader.parseValue());
- }
- }
-
- /** {@inheritDoc} */
- @Override public void writeTo(GridPortableWriterExImpl writer, GridPortableBuilderSerializer ctx) {
- if (delegate == null) {
- int size = reader.readIntAbsolute(off + 1);
-
- int hdrSize = 1 /* flag */ + 4 /* size */ + 1 /* col type */;
- writer.write(reader.array(), off, hdrSize);
-
- reader.position(off + hdrSize);
-
- for (int i = 0; i < size; i++) {
- ctx.writeValue(writer, reader.parseValue()); // key
- ctx.writeValue(writer, reader.parseValue()); // value
- }
- }
- else {
- writer.writeByte(GridPortableMarshaller.MAP);
- writer.writeInt(delegate.size());
-
- byte colType = reader.array()[off + 1 /* flag */ + 4 /* size */];
-
- writer.writeByte(colType);
-
- for (Entry<Object, Object> entry : delegate.entrySet()) {
- ctx.writeValue(writer, entry.getKey());
- ctx.writeValue(writer, entry.getValue());
- }
- }
- }
-
- /** {@inheritDoc} */
- @Override public int size() {
- if (delegate == null)
- return reader.readIntAbsolute(off + 1);
-
- return delegate.size();
- }
-
- /** {@inheritDoc} */
- @Override public boolean containsKey(Object key) {
- ensureDelegateInit();
-
- return delegate.containsKey(key);
- }
-
- /** {@inheritDoc} */
- @Override public boolean containsValue(Object val) {
- return values().contains(val);
- }
-
- /** {@inheritDoc} */
- @Override public Set<Object> keySet() {
- ensureDelegateInit();
-
- return delegate.keySet();
- }
-
- /** {@inheritDoc} */
- @Override public void clear() {
- if (delegate == null)
- delegate = new LinkedHashMap<>();
- else
- delegate.clear();
- }
-
- /** {@inheritDoc} */
- @Override public Object get(Object key) {
- ensureDelegateInit();
-
- return GridPortableUtils.unwrapLazy(delegate.get(key));
- }
-
- /** {@inheritDoc} */
- @Override public Object put(Object key, Object val) {
- ensureDelegateInit();
-
- return GridPortableUtils.unwrapLazy(delegate.put(key, val));
- }
-
- /** {@inheritDoc} */
- @Override public Object remove(Object key) {
- ensureDelegateInit();
-
- return GridPortableUtils.unwrapLazy(delegate.remove(key));
- }
-
- /** {@inheritDoc} */
- @Override public Set<Entry<Object, Object>> entrySet() {
- ensureDelegateInit();
-
- return new AbstractSet<Entry<Object, Object>>() {
- @Override public boolean contains(Object o) {
- throw new UnsupportedOperationException();
- }
-
- @Override public Iterator<Entry<Object, Object>> iterator() {
- return new Iterator<Entry<Object, Object>>() {
- /** */
- private final Iterator<Entry<Object, Object>> itr = delegate.entrySet().iterator();
-
- @Override public boolean hasNext() {
- return itr.hasNext();
- }
-
- @Override public Entry<Object, Object> next() {
- Entry<Object, Object> res = itr.next();
-
- final Object val = res.getValue();
-
- if (val instanceof GridPortableLazyValue) {
- return new SimpleEntry<Object, Object>(res.getKey(), val) {
- private static final long serialVersionUID = 0L;
-
- @Override public Object getValue() {
- return ((GridPortableLazyValue)val).value();
- }
- };
- }
-
- return res;
- }
-
- @Override public void remove() {
- itr.remove();
- }
- };
- }
-
- @Override public int size() {
- return delegate.size();
- }
- };
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4662feca/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazyMapEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazyMapEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazyMapEntry.java
deleted file mode 100644
index c92665c..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazyMapEntry.java
+++ /dev/null
@@ -1,66 +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.ignite.internal.portable;
-
-import java.util.*;
-
-/**
- *
- */
-class GridPortableLazyMapEntry implements Map.Entry<Object, Object>, GridPortableBuilderSerializationAware {
- /** */
- private final Object key;
-
- /** */
- private Object val;
-
- /**
- * @param reader GridMutablePortableReader
- */
- GridPortableLazyMapEntry(GridPortableBuilderReader reader) {
- key = reader.parseValue();
- val = reader.parseValue();
- }
-
- /** {@inheritDoc} */
- @Override public Object getKey() {
- return GridPortableUtils.unwrapLazy(key);
- }
-
- /** {@inheritDoc} */
- @Override public Object getValue() {
- return GridPortableUtils.unwrapLazy(val);
- }
-
- /** {@inheritDoc} */
- @Override public Object setValue(Object val) {
- Object res = getValue();
-
- this.val = val;
-
- return res;
- }
-
- /** {@inheritDoc} */
- @Override public void writeTo(GridPortableWriterExImpl writer, GridPortableBuilderSerializer ctx) {
- writer.writeByte(GridPortableMarshaller.MAP_ENTRY);
-
- ctx.writeValue(writer, key);
- ctx.writeValue(writer, val);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4662feca/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazySet.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazySet.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazySet.java
deleted file mode 100644
index c9a4f5b..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazySet.java
+++ /dev/null
@@ -1,89 +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.ignite.internal.portable;
-
-import org.apache.ignite.internal.util.typedef.internal.*;
-
-import java.util.*;
-
-/**
- *
- */
-class GridPortableLazySet extends GridPortableAbstractLazyValue {
- /** */
- private final int off;
-
- /**
- * @param reader Reader.
- * @param size Size.
- */
- GridPortableLazySet(GridPortableBuilderReader reader, int size) {
- super(reader, reader.position() - 1);
-
- off = reader.position() - 1/* flag */ - 4/* size */ - 1/* col type */;
-
- assert size >= 0;
-
- for (int i = 0; i < size; i++)
- reader.skipValue();
- }
-
- /** {@inheritDoc} */
- @Override public void writeTo(GridPortableWriterExImpl writer, GridPortableBuilderSerializer ctx) {
- if (val == null) {
- int size = reader.readIntAbsolute(off + 1);
-
- int hdrSize = 1 /* flag */ + 4 /* size */ + 1 /* col type */;
- writer.write(reader.array(), off, hdrSize);
-
- reader.position(off + hdrSize);
-
- for (int i = 0; i < size; i++) {
- Object o = reader.parseValue();
-
- ctx.writeValue(writer, o);
- }
- }
- else {
- Collection<Object> c = (Collection<Object>)val;
-
- writer.writeByte(GridPortableMarshaller.COL);
- writer.writeInt(c.size());
-
- byte colType = reader.array()[off + 1 /* flag */ + 4 /* size */];
- writer.writeByte(colType);
-
- for (Object o : c)
- ctx.writeValue(writer, o);
- }
- }
-
- /** {@inheritDoc} */
- @Override protected Object init() {
- int size = reader.readIntAbsolute(off + 1);
-
- reader.position(off + 1/* flag */ + 4/* size */ + 1/* col type */);
-
- Set<Object> res = U.newLinkedHashSet(size);
-
- for (int i = 0; i < size; i++)
- res.add(GridPortableUtils.unwrapLazy(reader.parseValue()));
-
- return res;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4662feca/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazyValue.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazyValue.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazyValue.java
deleted file mode 100644
index 6dbef93..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableLazyValue.java
+++ /dev/null
@@ -1,28 +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.ignite.internal.portable;
-
-/**
- *
- */
-interface GridPortableLazyValue extends GridPortableBuilderSerializationAware {
- /**
- * @return Value.
- */
- public Object value();
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4662feca/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableMarshaller.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableMarshaller.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableMarshaller.java
index 67db65f..a25c97e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableMarshaller.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableMarshaller.java
@@ -17,7 +17,7 @@
package org.apache.ignite.internal.portable;
-import org.apache.ignite.internal.processors.portable.*;
+import org.apache.ignite.internal.portable.streams.*;
import org.apache.ignite.portable.*;
import org.jetbrains.annotations.*;
@@ -205,12 +205,12 @@ public class GridPortableMarshaller {
static final byte DFLT_HDR_LEN = 18;
/** */
- private final GridPortableContext ctx;
+ private final PortableContext ctx;
/**
* @param ctx Context.
*/
- public GridPortableMarshaller(GridPortableContext ctx) {
+ public GridPortableMarshaller(PortableContext ctx) {
this.ctx = ctx;
}
@@ -224,7 +224,7 @@ public class GridPortableMarshaller {
if (obj == null)
return new byte[] { NULL };
- try (GridPortableWriterExImpl writer = new GridPortableWriterExImpl(ctx, off)) {
+ try (PortableWriterExImpl writer = new PortableWriterExImpl(ctx, off)) {
writer.marshal(obj, false);
return writer.array();
@@ -240,7 +240,7 @@ public class GridPortableMarshaller {
@Nullable public <T> T unmarshal(byte[] bytes, @Nullable ClassLoader clsLdr) throws PortableException {
assert bytes != null;
- GridGridPortableReaderExImpl reader = new GridGridPortableReaderExImpl(ctx, bytes, 0, clsLdr);
+ PortableReaderExImpl reader = new PortableReaderExImpl(ctx, bytes, 0, clsLdr);
return (T)reader.unmarshal();
}
@@ -251,7 +251,7 @@ public class GridPortableMarshaller {
* @throws PortableException In case of error.
*/
@SuppressWarnings("unchecked")
- @Nullable public <T> T unmarshal(GridPortableInputStream in) throws PortableException {
+ @Nullable public <T> T unmarshal(PortableInputStream in) throws PortableException {
return (T)reader(in).unmarshal();
}
@@ -269,7 +269,7 @@ public class GridPortableMarshaller {
if (arr[0] == NULL)
return null;
- GridGridPortableReaderExImpl reader = new GridGridPortableReaderExImpl(ctx, arr, 0, ldr);
+ PortableReaderExImpl reader = new PortableReaderExImpl(ctx, arr, 0, ldr);
return (T)reader.deserialize();
}
@@ -280,8 +280,8 @@ public class GridPortableMarshaller {
* @param out Output stream.
* @return Writer.
*/
- public GridPortableWriterExImpl writer(GridPortableOutputStream out) {
- return new GridPortableWriterExImpl(ctx, out, 0);
+ public PortableWriterExImpl writer(PortableOutputStream out) {
+ return new PortableWriterExImpl(ctx, out, 0);
}
/**
@@ -290,15 +290,15 @@ public class GridPortableMarshaller {
* @param in Input stream.
* @return Reader.
*/
- public GridGridPortableReaderExImpl reader(GridPortableInputStream in) {
+ public PortableReaderExImpl reader(PortableInputStream in) {
// TODO: GG-10396 - Is class loader needed here?
- return new GridGridPortableReaderExImpl(ctx, in, in.position(), null);
+ return new PortableReaderExImpl(ctx, in, in.position(), null);
}
/**
* @return Context.
*/
- public GridPortableContext context() {
+ public PortableContext context() {
return ctx;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4662feca/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableMetaDataCollector.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableMetaDataCollector.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableMetaDataCollector.java
deleted file mode 100644
index 989f204..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableMetaDataCollector.java
+++ /dev/null
@@ -1,253 +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.ignite.internal.portable;
-
-import org.apache.ignite.portable.*;
-
-import org.jetbrains.annotations.*;
-
-import java.lang.reflect.*;
-import java.math.*;
-import java.sql.*;
-import java.util.*;
-import java.util.Date;
-
-/**
- * Writer for meta data collection.
- */
-class GridPortableMetaDataCollector implements PortableWriter {
- /** */
- private final Map<String, String> meta = new HashMap<>();
-
- /** */
- private final String typeName;
-
- /**
- * @param typeName Type name.
- */
- GridPortableMetaDataCollector(String typeName) {
- this.typeName = typeName;
- }
-
- /**
- * @return Field meta data.
- */
- Map<String, String> meta() {
- return meta;
- }
-
- /** {@inheritDoc} */
- @Override public void writeByte(String fieldName, byte val) throws PortableException {
- add(fieldName, byte.class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeShort(String fieldName, short val) throws PortableException {
- add(fieldName, short.class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeInt(String fieldName, int val) throws PortableException {
- add(fieldName, int.class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeLong(String fieldName, long val) throws PortableException {
- add(fieldName, long.class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeFloat(String fieldName, float val) throws PortableException {
- add(fieldName, float.class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeDouble(String fieldName, double val) throws PortableException {
- add(fieldName, double.class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeChar(String fieldName, char val) throws PortableException {
- add(fieldName, char.class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeBoolean(String fieldName, boolean val) throws PortableException {
- add(fieldName, boolean.class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeDecimal(String fieldName, @Nullable BigDecimal val) throws PortableException {
- add(fieldName, GridPortableClassDescriptor.Mode.DECIMAL.typeName());
- }
-
- /** {@inheritDoc} */
- @Override public void writeString(String fieldName, @Nullable String val) throws PortableException {
- add(fieldName, String.class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeUuid(String fieldName, @Nullable UUID val) throws PortableException {
- add(fieldName, UUID.class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeDate(String fieldName, @Nullable Date val) throws PortableException {
- add(fieldName, Date.class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeTimestamp(String fieldName, @Nullable Timestamp val) throws PortableException {
- add(fieldName, Timestamp.class);
- }
-
- /** {@inheritDoc} */
- @Override public <T extends Enum<?>> void writeEnum(String fieldName, T val) throws PortableException {
- add(fieldName, Enum.class);
- }
-
- /** {@inheritDoc} */
- @Override public <T extends Enum<?>> void writeEnumArray(String fieldName, T[] val) throws PortableException {
- add(fieldName, Enum[].class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeObject(String fieldName, @Nullable Object obj) throws PortableException {
- add(fieldName, Object.class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeByteArray(String fieldName, @Nullable byte[] val) throws PortableException {
- add(fieldName, byte[].class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeShortArray(String fieldName, @Nullable short[] val) throws PortableException {
- add(fieldName, short[].class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeIntArray(String fieldName, @Nullable int[] val) throws PortableException {
- add(fieldName, int[].class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeLongArray(String fieldName, @Nullable long[] val) throws PortableException {
- add(fieldName, long[].class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeFloatArray(String fieldName, @Nullable float[] val) throws PortableException {
- add(fieldName, float[].class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeDoubleArray(String fieldName, @Nullable double[] val) throws PortableException {
- add(fieldName, double[].class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeCharArray(String fieldName, @Nullable char[] val) throws PortableException {
- add(fieldName, char[].class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeBooleanArray(String fieldName, @Nullable boolean[] val) throws PortableException {
- add(fieldName, boolean[].class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeDecimalArray(String fieldName, @Nullable BigDecimal[] val) throws PortableException {
- add(fieldName, GridPortableClassDescriptor.Mode.DECIMAL_ARR.typeName());
- }
-
- /** {@inheritDoc} */
- @Override public void writeStringArray(String fieldName, @Nullable String[] val) throws PortableException {
- add(fieldName, String[].class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeUuidArray(String fieldName, @Nullable UUID[] val) throws PortableException {
- add(fieldName, UUID[].class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeDateArray(String fieldName, @Nullable Date[] val) throws PortableException {
- add(fieldName, Date[].class);
- }
-
- /** {@inheritDoc} */
- @Override public void writeObjectArray(String fieldName, @Nullable Object[] val) throws PortableException {
- add(fieldName, Object[].class);
- }
-
- /** {@inheritDoc} */
- @Override public <T> void writeCollection(String fieldName, @Nullable Collection<T> col)
- throws PortableException {
- add(fieldName, Collection.class);
- }
-
- /** {@inheritDoc} */
- @Override public <K, V> void writeMap(String fieldName, @Nullable Map<K, V> map) throws PortableException {
- add(fieldName, Map.class);
- }
-
- /** {@inheritDoc} */
- @Override public PortableRawWriter rawWriter() {
- return (PortableRawWriter)Proxy.newProxyInstance(getClass().getClassLoader(),
- new Class<?>[] { GridPortableRawWriterEx.class },
- new InvocationHandler() {
- @Override public Object invoke(Object proxy, Method mtd, Object[] args) throws Throwable {
- return null;
- }
- });
- }
-
- /**
- * @param name Field name.
- * @param fieldType Field type.
- * @throws PortableException In case of error.
- */
- private void add(String name, Class<?> fieldType) throws PortableException {
- assert fieldType != null;
-
- add(name, fieldType.getSimpleName());
- }
-
- /**
- * @param name Field name.
- * @param fieldTypeName Field type name.
- * @throws PortableException In case of error.
- */
- private void add(String name, String fieldTypeName) throws PortableException {
- assert name != null;
-
- String oldFieldTypeName = meta.put(name, fieldTypeName);
-
- if (oldFieldTypeName != null && !oldFieldTypeName.equals(fieldTypeName)) {
- throw new PortableException(
- "Field is written twice with different types [" +
- "typeName=" + typeName +
- ", fieldName=" + name +
- ", fieldTypeName1=" + oldFieldTypeName +
- ", fieldTypeName2=" + fieldTypeName +
- ']'
- );
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4662feca/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableMetaDataHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableMetaDataHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableMetaDataHandler.java
deleted file mode 100644
index d0d8671..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableMetaDataHandler.java
+++ /dev/null
@@ -1,43 +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.ignite.internal.portable;
-
-import org.apache.ignite.portable.*;
-
-/**
- * Portable meta data handler.
- */
-public interface GridPortableMetaDataHandler {
- /**
- * Adds meta data.
- *
- * @param typeId Type ID.
- * @param meta Meta data.
- * @throws PortableException In case of error.
- */
- public void addMeta(int typeId, GridPortableMetaDataImpl meta) throws PortableException;
-
- /**
- * Gets meta data for provided type ID.
- *
- * @param typeId Type ID.
- * @return Meta data.
- * @throws PortableException In case of error.
- */
- public PortableMetadata metadata(int typeId) throws PortableException;
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4662feca/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableMetaDataImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableMetaDataImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableMetaDataImpl.java
deleted file mode 100644
index 078bb68..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableMetaDataImpl.java
+++ /dev/null
@@ -1,140 +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.ignite.internal.portable;
-
-import org.apache.ignite.internal.util.tostring.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
-import org.apache.ignite.portable.*;
-
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Portable meta data implementation.
- */
-public class GridPortableMetaDataImpl implements PortableMetadata, PortableMarshalAware, Externalizable {
- /** */
- private static final long serialVersionUID = 0L;
-
- /** */
- private String typeName;
-
- /** */
- @GridToStringInclude
- private Map<String, String> fields;
-
- /** */
- private volatile Map<Integer, String> fldIdToName;
-
- /** */
- private String affKeyFieldName;
-
- /**
- * For {@link Externalizable}.
- */
- public GridPortableMetaDataImpl() {
- // No-op.
- }
-
- /**
- * @param typeName Type name.
- * @param fields Fields map.
- * @param affKeyFieldName Affinity key field name.
- */
- public GridPortableMetaDataImpl(String typeName, @Nullable Map<String, String> fields,
- @Nullable String affKeyFieldName) {
- assert typeName != null;
-
- this.typeName = typeName;
- this.fields = fields;
- this.affKeyFieldName = affKeyFieldName;
- }
-
- /** {@inheritDoc} */
- @Override public String typeName() {
- return typeName;
- }
-
- /** {@inheritDoc} */
- @Override public Collection<String> fields() {
- return fields != null ? fields.keySet() : Collections.<String>emptyList();
- }
-
- /**
- * @return Fields.
- */
- public Map<String, String> fields0() {
- return fields != null ? fields : Collections.<String, String>emptyMap();
- }
-
- /** {@inheritDoc} */
- @Nullable @Override public String fieldTypeName(String fieldName) {
- return fields != null ? fields.get(fieldName) : null;
- }
-
- /** {@inheritDoc} */
- @Nullable @Override public String affinityKeyFieldName() {
- return affKeyFieldName;
- }
-
- /**
- * @return Fields meta data.
- */
- public Map<String, String> fieldsMeta() {
- return fields != null ? fields : Collections.<String, String>emptyMap();
- }
-
- /** {@inheritDoc} */
- @Override public void writeExternal(ObjectOutput out) throws IOException {
- U.writeString(out, typeName);
- U.writeMap(out, fields);
- U.writeString(out, affKeyFieldName);
- }
-
- /** {@inheritDoc} */
- @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- typeName = U.readString(in);
- fields = U.readMap(in);
- affKeyFieldName = U.readString(in);
- }
-
- /** {@inheritDoc} */
- @Override public void writePortable(PortableWriter writer) throws PortableException {
- PortableRawWriter raw = writer.rawWriter();
-
- raw.writeString(typeName);
- raw.writeString(affKeyFieldName);
- raw.writeMap(fields);
- }
-
- /** {@inheritDoc} */
- @Override public void readPortable(PortableReader reader) throws PortableException {
- PortableRawReader raw = reader.rawReader();
-
- typeName = raw.readString();
- affKeyFieldName = raw.readString();
- fields = raw.readMap();
- }
-
- /** {@inheritDoc} */
- @Override public String toString() {
- return S.toString(GridPortableMetaDataImpl.class, this);
- }
-}