/** * Register serialization adapter in the default Boss mapper only. See {@link BiMapper#registerAdapter(Class, * BiAdapter)} for more information. * * @param klass * @param adapter */ public static void registerAdapter(Class<?> klass, BiAdapter adapter) { getInstance().registerAdapter(klass, adapter); }
/** * Create new serializer based on default {@link Boss} - optimized {@link BiMapper}. * @return */ public static BiSerializer newSerializer() { return new BiSerializer(getInstance()); } }
/** * Register serializabble class in the default Boss mapper only. See {@link BiMapper#registerClass(Class)} for more * information. * * @param klass */ public static void registerClass(Class<? extends BiSerializable> klass) { getInstance().registerClass(klass); }
/** * Create new deserializer based on default {@link Boss} - optimized {@link BiMapper}. * @return */ public static BiDeserializer newDeserializer() { return new BiDeserializer(getInstance()); }
public static void deserializeInPlace(Map map) { new BiDeserializer(getInstance()).deserializeInPlace(map); }
public static <T> T deserialize(Map map) { return new BiDeserializer(getInstance()).deserialize(Binder.from(map)); }
synchronized public void check() throws Quantiser.QuantiserException { try { BiMapper mapper = BossBiMapper.getInstance(); MapDelta rootDelta = Delta.between(mapper.serialize(existing), mapper.serialize(changed)); MapDelta definitionDelta = (MapDelta) rootDelta.getChange("definition"); stateDelta = (MapDelta) rootDelta.getChange("state"); if (definitionDelta != null) { addError(ILLEGAL_CHANGE, "definition", "definition must not be changed"); } // check immutable root area // should be only one change here: state int allowedRootChanges = 1; Delta ch = rootDelta.getChange("api_level"); if( ch != null) { allowedRootChanges++; } // or can be changed section "transactional" Delta transactionalDelta = rootDelta.getChange("transactional"); if(transactionalDelta != null) { allowedRootChanges++; } if (rootDelta.getChanges().size() > allowedRootChanges) addError(ILLEGAL_CHANGE, "root", "root level changes are forbidden except the state"); // check only permitted changes in data checkStateChange(); } catch (ClassCastException e) { e.printStackTrace(); addError(FAILED_CHECK, "", "failed to compare, structure is broken or not supported"); } }