@Override public Method getGetter(Class<?> domainType, String property) { return getOrCache(getGetter, new Pair<Class<?>, String>(domainType, property), Method.class, domainType, property); }
/** * Get or create a BaseProxy AutoBean for the given id. */ public <Q extends BaseProxy> AutoBean<Q> getBeanForPayload(SimpleProxyId<Q> id, Object domainObject) { @SuppressWarnings("unchecked") AutoBean<Q> toReturn = (AutoBean<Q>) beans.get(id); if (toReturn == null) { toReturn = createProxyBean(id, domainObject); } return toReturn; }
@SuppressWarnings("unchecked") private <T, I> Locator<T, I> getLocator(Class<T> domainType) { Class<? extends Locator<?, ?>> locatorType = getTop().resolveLocator(domainType); if (locatorType == null) { return null; } return (Locator<T, I>) getTop().createLocator(locatorType); }
@Override public Object getVersion(Object domainObject) { return getTop().getProperty(domainObject, "version"); }
@Override public Class<? extends ServiceLocator> resolveServiceLocator( Class<? extends RequestContext> requestContext) { return getNext().resolveServiceLocator(requestContext); }
@Override public <T> Class<? extends T> resolveClientType(Class<?> domainClass, Class<T> clientType, boolean required) { return getNext().resolveClientType(domainClass, clientType, required); }
@Override public boolean requiresServiceLocator(Method contextMethod, Method domainMethod) { return getNext().requiresServiceLocator(contextMethod, domainMethod); }
@Override public Class<? extends BaseProxy> resolveClass(String typeToken) { return getNext().resolveClass(typeToken); }
@Override public Class<? extends RequestContext> resolveRequestContext(String operation) { return getNext().resolveRequestContext(operation); }
@Override public <T> T createDomainObject(Class<T> clazz) { return getNext().createDomainObject(clazz); }
@Override public Object getVersion(Object domainObject) { return getNext().getVersion(domainObject); }
@Override public <T> T loadDomainObject(Class<T> clazz, Object domainId) { return getNext().loadDomainObject(clazz, domainId); }
@Override public Class<?> resolveDomainClass(Class<?> clazz) { return getNext().resolveDomainClass(clazz); }
@Override public Method resolveRequestContextMethod(String operation) { return getNext().resolveRequestContextMethod(operation); }
@Override public boolean requiresServiceLocator(Method contextMethod, Method domainMethod) { return getOrCache(requiresServiceLocator, new Pair<Method, Method>(contextMethod, domainMethod), Boolean.class, contextMethod, domainMethod); }
@Override public Object getId(Object domainObject) { return getTop().getProperty(domainObject, "id"); }
@Override public Method getSetter(Class<?> domainType, String property) { return getOrCache(getSetter, new Pair<Class<?>, String>(domainType, property), Method.class, domainType, property); }