public ActivateFlowsAction(String definitionId, Collection<Flow> flows) { this(definitionId, TreePVector.from(flows)); }
/** * Create a PVector from the supplied Colleciton * <pre> * {@code * PVector<Integer> list = PVectors.fromCollection(Arrays.asList(1,2,3)); * * } * </pre> * * @param values to add to new PVector * @return PVector containing values */ public static <T> PVector<T> fromCollection(Collection<T> values){ return TreePVector.from(values); } /**
/** * Construct a PVector from the provided values * * <pre> * {@code * List<String> list = PVectors.of("a","b","c"); * * // or * * PVector<String> list = PVectors.of("a","b","c"); * * * } * </pre> * * * @param values To add to PVector * @return new PVector */ public static <T> PVector<T> of(T...values){ return TreePVector.from(Arrays.asList(values)); } /**
UtilityTest.assertEqualsAndHash(list, pvec); UtilityTest.assertEqualsAndHash(pvec, TreePVector.from(pvec)); UtilityTest.assertEqualsAndHash(TreePVector.empty(), pvec.minusAll(pvec)); UtilityTest.assertEqualsAndHash(pvec, TreePVector.empty().plusAll(pvec));
@SuppressWarnings("unchecked") private void readObject(final ObjectInputStream in) throws IOException, ClassNotFoundException { try { Field contentsField = getClass().getDeclaredField("contents"); contentsField.setAccessible(true); contentsField.set(this, TreePVector.from((List<E>) in.readObject())); Field markField = getClass().getDeclaredField("mark"); markField.setAccessible(true); markField.set(this, HashTreePSet.from((Set<E>) in.readObject())); } catch (IllegalAccessException | NoSuchFieldException e) { throw new IOException(e); } }
public void testSerializationForTreePVector() { final TreePVector<String> initialTreePVector = TreePVector.from(Arrays.asList(ELEMENT1, ELEMENT2, ELEMENT3)); final byte[] serializedTreePVector = serializeToByteArray(initialTreePVector); assertNotNull(serializedTreePVector); assertTrue(serializedTreePVector.length > 0); @SuppressWarnings("unchecked") final TreePVector<String> deserializedTreePVector = deserializeFromByteArray(serializedTreePVector, TreePVector.class); assertNotNull(deserializedTreePVector); assertEquals(3, deserializedTreePVector.size()); assertNotSame(initialTreePVector, deserializedTreePVector); assertEquals(0, deserializedTreePVector.indexOf(ELEMENT1)); assertEquals(1, deserializedTreePVector.indexOf(ELEMENT2)); assertEquals(2, deserializedTreePVector.indexOf(ELEMENT3)); }
default Value of(Collection<? extends T> values) { return of(TreePVector.from(values)); }
@Override public PVector<V> applyUnsafe(BsonValue p) throws BsonInvalidOperationException { BsonArray bsonArray = p.asArray(); List<V> values = bsonArray.getValues().stream().map(v -> itemDeserialiser.apply(v)).collect(Collectors.toList()); return TreePVector.from(values); } }
/** * Construct a PVector from the provided values * * <pre> * {@code * List<String> list = PVectors.of("a","b","c"); * * // or * * PVector<String> list = PVectors.of("a","b","c"); * * * } * </pre> * * * @param values To add to PVector * @return new PVector */ public static <T> PVectorX<T> of(T...values){ return new PVectorXImpl<>(TreePVector.from(Arrays.asList(values))); } /**
/** * Create a PVector from the supplied Colleciton * <pre> * {@code * PVector<Integer> list = PVectors.fromCollection(Arrays.asList(1,2,3)); * * } * </pre> * * @param values to add to new PVector * @return PVector containing values */ public static <T> PVectorX<T> fromCollection(Collection<T> values){ if(values instanceof PVectorX) return (PVectorX)values; if(values instanceof PVector) return new PVectorXImpl<>((PVector)values); return new PVectorXImpl<>(TreePVector.from(values)); } /**
@Override public PVector<V> applyUnsafe(JsonParser p) throws IOException { List<V> values = new LinkedList<>(); /* * If we are in the root context (not inside an object or list) then we need to consume the next token * before attempting to call child deserialisers. */ if (p.getParsingContext().inRoot()) { if (p.nextToken() == JsonToken.END_ARRAY) { return TreePVector.empty(); } } if (JsonToken.VALUE_NULL != p.getCurrentToken()) { /* * When the parser has hit the end of input nextToken() will always return null. * So need to prevent infinite loops we check the parser closed flag. */ while (!p.isClosed() && (p.nextToken() != JsonToken.END_ARRAY)) { values.add(itemDeserialiser.apply(p)); } } return TreePVector.from(values); } }