if (object == null) {
return null;
}
PersistenceWeavedRest persistenceWeavedRest = null;
Link link = null;
if (object instanceof PersistenceWeavedRest) {
persistenceWeavedRest = (PersistenceWeavedRest) object;
link = persistenceWeavedRest._persistence_getHref();
} else if (object instanceof Link) {
link = (Link) object;
} else {
return null;
}
if ((null == link) || ((link != null) && (link.getHref() == null))) {
if (persistenceWeavedRest != null) {
ClassDescriptor descriptor = context.getJAXBDescriptorForClass(persistenceWeavedRest.getClass());
if (persistenceWeavedRest instanceof FetchGroupTracker && JpaHelper.getDatabaseSession(context.getEmf()).doesObjectExist(persistenceWeavedRest)) {
if (context.doesExist(null, persistenceWeavedRest)) {
FetchGroup fetchGroup = new FetchGroup();
for (DatabaseMapping mapping : descriptor.getMappings()) {
if (!(mapping instanceof XMLInverseReferenceMapping)) {
fetchGroup.addAttribute(mapping.getAttributeName());
}
}
(new FetchGroupManager()).setObjectFetchGroup(persistenceWeavedRest, fetchGroup, null);
}
}
return (T) persistenceWeavedRest;
}
}
// Construct object from the href
if ((link != null) && (link.getHref() != null)) {
String uri = link.getHref().replace("\\/", "/");
String entityType = uri.substring(uri.indexOf("/entity/"), uri.lastIndexOf('/'));
entityType = entityType.substring(entityType.lastIndexOf("/") + 1);
String entityId = uri.substring(uri.lastIndexOf("/") + 1);
ClassDescriptor descriptor = context.getDescriptor(entityType);
Object id = IdHelper.buildId(context, descriptor.getAlias(), entityId);