public static <T> List<IdRef<T>> parse(Class<T> clazz, Repository r, List<String> uris) { ArrayList<IdRef<T>> ids = new ArrayList<>(); for (String uri : uris) { ids.add(parse(clazz, r, uri)); } return ids; }
private List<IdRef<?>> convertToIdRefs(List<?> rawIds) { List<IdRef<?>> ids = new ArrayList<>(); for (Object rawId : rawIds) { if (rawId instanceof String) { ids.add(IdRef.parse(r, (String) rawId)); } else { ids.add((IdRef<?>) rawId); } } return ids; } }
private <T> void setListOfIdsProperty(T object, Field field, Object value) throws IllegalAccessException { List<String> uris = (List<String>) value; List<IdRef<?>> ids = new ArrayList<>(uris.size()); for (String uri : uris) { ids.add(IdRef.parse(r, HttpVerb.GET, uri)); } field.set(object, ids); } }
private <T> void setListOfIdsProperty(T object, Field field, Object value) throws IllegalAccessException { List<String> uris = (List<String>) value; List<IdRef<?>> ids = new ArrayList<>(uris.size()); for (String uri : uris) { ids.add(IdRef.parse(r, HttpVerb.GET, uri)); } field.set(object, ids); } }
public IdRef<?> getSinkId() { if (sinkId == null) { sinkId = IdRef.parse(yawp(), sinkUri); } return sinkId; }
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { String uri = (String) in.readObject(); IdRef<T> idRef = (IdRef<T>) parse(yawp(), uri); this.r = idRef.r; this.clazz = idRef.clazz; this.model = idRef.model; this.id = idRef.id; this.name = idRef.name; this.parentId = idRef.parentId; }
private void init(Class<? extends Pipe> pipeClazz, String sourceUri) { this.r = yawp(); this.pipeClazz = pipeClazz; this.sourceId = IdRef.parse(r, sourceUri); }
@Override public IdRef deserialize(ObjectReader reader, Context ctx) throws Exception { String json = reader.valueAsString(); return IdRef.parse(yawp(), null, json); } }
private void init(Class<? extends Pipe> pipeClazz, String sinkUri, String cursor) { this.r = yawp(); this.pipeClazz = pipeClazz; this.sourceClazz = ReflectionUtils.getFeatureEndpointClazz(pipeClazz); this.sinkId = IdRef.parse(r, sinkUri); this.cursor = cursor; }
@Test public void testParseEndingWithActionOverObject() { assertNull(IdRef.parse(yawp, PUT, "/parents/touched")); assertNull(IdRef.parse(yawp, GET, "/parents/something")); assertIdRef(IdRef.parse(yawp, PUT, "/parents/a/touched"), Parent.class, "a"); assertIdRef(IdRef.parse(yawp, PUT, "/parents/a/children/b/touched"), Child.class, "b"); }
@Test public void testParseEndingWithActionOverObject() { assertNull(IdRef.parse(yawp, PUT, "/parents/touched")); assertNull(IdRef.parse(yawp, GET, "/parents/something")); assertIdRef(IdRef.parse(yawp, PUT, "/parents/1/touched"), Parent.class, 1l); assertIdRef(IdRef.parse(yawp, PUT, "/parents/1/children/2/touched"), Child.class, 2l); }
@Test public void testParseParentId() { IdRef<Parent> parentId = IdRef.parse(yawp, GET, "/parents/1"); assertIdRef(parentId, Parent.class, 1l); }
private void parseAll() { this.id = IdRef.parse(r, verb, uri); this.customActionKey = parseCustomActionKey(); this.overCollection = parseOverCollection(); this.endpointClazz = parseEndpointClazz(); if (!isCustomAction()) { this.objects = parseRequestJson(); } }
@Test public void testToString() { assertEquals("/parents/a", IdRef.parse(yawp, GET, "/parents/a").toString()); assertEquals("/parents/a/children/b", IdRef.parse(yawp, GET, "/parents/a/children/b").toString()); assertEquals("/parents/a/children/b/grandchildren/c", IdRef.parse(yawp, GET, "/parents/a/children/b/grandchildren/c").toString()); }
@Test public void testGetString() { assertEquals("/parents/1", IdRef.parse(yawp, GET, "/parents/1").toString()); assertEquals("/parents/1/children/2", IdRef.parse(yawp, GET, "/parents/1/children/2").toString()); assertEquals("/parents/1/children/2/grandchildren/3", IdRef.parse(yawp, GET, "/parents/1/children/2/grandchildren/3").toString()); }
@Test public void testParseGrandchildId() { IdRef<Grandchild> grandchildId = IdRef.parse(yawp, GET, "/parents/a/children/b/grandchildren/c"); IdRef<Child> childId = grandchildId.getParentId(); IdRef<Parent> parentId = childId.getParentId(); assertIdRef(parentId, Parent.class, "a"); assertIdRef(childId, Child.class, "b"); assertIdRef(grandchildId, Grandchild.class, "c"); }
@Test public void testParseGrandchildId() { IdRef<Grandchild> grandchildId = IdRef.parse(yawp, GET, "/parents/1/children/2/grandchildren/3"); IdRef<Child> childId = grandchildId.getParentId(); IdRef<Parent> parentId = childId.getParentId(); assertIdRef(parentId, Parent.class, 1l); assertIdRef(childId, Child.class, 2l); assertIdRef(grandchildId, Grandchild.class, 3l); }