public <TT> IdRef<TT> createChildId(Class<TT> clazz, Long id) { IdRef<TT> idRef = new IdRef<>(r, clazz, id); idRef.setParentId(this); return idRef; }
public <TT> IdRef<TT> createChildId(Class<TT> clazz, String name) { IdRef<TT> idRef = new IdRef<>(r, clazz, name); idRef.setParentId(this); return idRef; }
@SuppressWarnings("unchecked") public static <TT> IdRef<TT> parse(Repository r, HttpVerb verb, String path) { if (StringUtils.isBlank(path)) { return null; } String[] parts = path.substring(1).split("/"); if (parts.length < 2) { return null; } IdRef<TT> lastIdRef = null; for (int i = 0; i < parts.length; i += 2) { if (isActionOrCollection(r, verb, parts, i)) { break; } String endpointPath = "/" + parts[i]; IdRef<TT> currentIdRef; if (!isString(parts[i + 1])) { Long asLong = Long.valueOf(parts[i + 1]); currentIdRef = (IdRef<TT>) create(r, getIdRefClazz(r, endpointPath), asLong); } else { String asString = parts[i + 1]; currentIdRef = (IdRef<TT>) create(r, getIdRefClazz(r, endpointPath), asString); } currentIdRef.setParentId(lastIdRef); lastIdRef = currentIdRef; validateParentId(currentIdRef, path); } return lastIdRef; }
public IdRef<SinkMarker> createSinkMarkerId() { IdRef<?> sourceId = payload.getSourceId(); IdRef<?> sinkId = payload.getSinkId(); IdRef<SinkMarker> sinkMarkerId; if (sourceId.getId() != null) { sinkMarkerId = IdRef.create(yawp(), SinkMarker.class, sourceId.getId()); sinkMarkerId.setParentId(sinkId.createChildId(sourceId.getClazz(), sourceId.getId())); } else { sinkMarkerId = IdRef.create(yawp(), SinkMarker.class, sourceId.getName()); sinkMarkerId.setParentId(sinkId.createChildId(sourceId.getClazz(), sourceId.getName())); } return sinkMarkerId; }
public static IdRef<?> toIdRef(Repository r, Key key, ObjectModel model) { Class<?> objectClass = model.getClazz(); IdRef<?> idRef; if (model.isIdShuffled()) { idRef = getIdRefFromShuffledKey(r, key, objectClass); } else if (key.getName() != null) { idRef = IdRef.create(r, objectClass, key.getName()); } else { idRef = IdRef.create(r, objectClass, key.getId()); } if (key.getParent() != null) { idRef.setParentId(toIdRef(r, key.getParent(), createParentModel(r, key))); } return idRef; }
public static IdRef<?> toIdRef(Repository r, Key key, ObjectModel model) { Class<?> objectClass = model.getClazz(); IdRef<?> idRef; if (model.isIdShuffled()) { idRef = getIdRefFromShuffledKey(r, key, objectClass); } else if (key.getName() != null) { idRef = IdRef.create(r, objectClass, key.getName()); } else { idRef = IdRef.create(r, objectClass, key.getId()); } if (key.getParent() != null) { idRef.setParentId(toIdRef(r, key.getParent(), createParentModel(r, key))); } return idRef; }