/** * Effectively overrides {@link BaseProxyCategory#stableId(AutoBean)} to * return a narrower bound. */ public static <T extends EntityProxy> SimpleEntityProxyId<T> stableId( AutoBean<? extends T> bean) { return bean.getTag(STABLE_ID); }
public static <T extends BaseProxy> SimpleProxyId<T> stableId(AutoBean<? extends T> bean) { return bean.getTag(STABLE_ID); } }
public static AbstractRequestContext requestContext(AutoBean<?> bean) { State state = bean.<AbstractRequestContext.State> getTag(REQUEST_CONTEXT_STATE); return state == null ? null : state.getCanonicalContext(); }
/** * This method checks that a proxy object is either immutable, or already edited by this context. */ private <T> AutoBean<T> checkStreamsNotCrossed(T object) { AutoBean<T> bean = AutoBeanUtils.getAutoBean(object); if (bean == null) { // Unexpected; some kind of foreign implementation? throw new IllegalArgumentException(object.getClass().getName()); } State otherState = bean.getTag(REQUEST_CONTEXT_STATE); if (!bean.isFrozen() && otherState != this.state) { /* * This means something is way off in the weeds. If a bean is editable, it's supposed to be * associated with a RequestContext. */ assert otherState != null : "Unfrozen bean with null RequestContext"; /* * Already editing the object in another context or it would have been in the editing map. */ throw new IllegalArgumentException("Attempting to edit an EntityProxy" + " previously edited by another RequestContext"); } return bean; }
public BaseProxy getOriginalProxy() { AutoBean<? extends BaseProxy> parent = AutoBeanUtils.getAutoBean(v.getRootBean()).getTag(Constants.PARENT_OBJECT); return parent == null ? null : parent.as(); }
if (maybeEntityProxy instanceof BaseProxy) { AutoBean<BaseProxy> bean = AutoBeanUtils.getAutoBean((BaseProxy) maybeEntityProxy); Object domain = bean.getTag(Constants.DOMAIN_OBJECT); if (domain == null && detectDeadEntities) { throw new ReportableException(new DeadEntityException(
public Object key(Object object) { if (object instanceof EntityProxy) { return ((EntityProxy) object).stableId(); } else if (object instanceof ValueProxy) { AutoBean<?> bean = AutoBeanUtils.getAutoBean(object); // Possibly replace an editable ValueProxy with its immutable base AutoBean<?> parent = bean.getTag(Constants.PARENT_OBJECT); if (parent != null) { object = parent.as(); } return new ValueProxyHolder((ValueProxy) object); } return null; } };
public boolean isChanged() { /* * NB: Don't use the presence of ephemeral objects for this test. * * Diff the objects until one is found to be different. It's not just a * simple flag-check because of the possibility of "unmaking" a change, per * the JavaDoc. * * TODO: try to get rid of the 'diffing' flag and optimize the diffing of * objects: http://code.google.com/p/google-web-toolkit/issues/detail?id=7379 */ assert !state.diffing; state.diffing = true; try { for (AutoBean<? extends BaseProxy> bean : state.editedProxies.values()) { AutoBean<?> previous = bean.getTag(Constants.PARENT_OBJECT); if (previous == null) { // Compare to empty object Class<?> proxyClass = stableId(bean).getProxyClass(); previous = getAutoBeanFactory().create(proxyClass); } if (!AutoBeanUtils.diff(previous, bean).isEmpty()) { return true; } } return false; } finally { state.diffing = false; } }
final Object domain = bean.getTag(Constants.DOMAIN_OBJECT); if (domain != null) {
/** * Effectively overrides {@link BaseProxyCategory#stableId(AutoBean)} to * return a narrower bound. */ public static <T extends EntityProxy> SimpleEntityProxyId<T> stableId( AutoBean<? extends T> bean) { return bean.getTag(STABLE_ID); }
/** * Effectively overrides {@link BaseProxyCategory#stableId(AutoBean)} to * return a narrower bound. */ public static <T extends EntityProxy> SimpleEntityProxyId<T> stableId( AutoBean<? extends T> bean) { return bean.getTag(STABLE_ID); }
/** * Effectively overrides {@link BaseProxyCategory#stableId(AutoBean)} to * return a narrower bound. */ public static <T extends EntityProxy> SimpleEntityProxyId<T> stableId( AutoBean<? extends T> bean) { return bean.getTag(STABLE_ID); }
otherBean.setTag(REQUEST_CONTEXT_STATE, bean.getTag(REQUEST_CONTEXT_STATE));
Object domainObject = bean.getTag(Constants.DOMAIN_OBJECT); WriteOperation writeOperation; boolean inResponse = bean.getTag(Constants.IN_RESPONSE) != null; String previousVersion = bean.<String> getTag(Constants.VERSION_PROPERTY_B64); if (version != null && previousVersion != null && version.equals(fromBase64(previousVersion))) {
for (Map.Entry<SimpleProxyId<?>, AutoBean<? extends BaseProxy>> entry : source.beans.entrySet()) { AutoBean<? extends BaseProxy> bean = entry.getValue(); Object domainObject = bean.getTag(Constants.DOMAIN_OBJECT);
public static Map<String, String> getExpressions(Object bean) { final AutoBean autoBean = asAutoBean(bean); Map<String, String> exprMap = (Map<String, String>) autoBean.getTag(EXPR_TAG); if (null == exprMap) { exprMap = new HashMap<String, String>(); autoBean.setTag(EXPR_TAG, exprMap); } return exprMap; }
public BaseProxy getOriginalProxy() { AutoBean<? extends BaseProxy> parent = AutoBeanUtils.getAutoBean(v.getRootBean()).getTag(Constants.PARENT_OBJECT); return parent == null ? null : parent.as(); }
public BaseProxy getOriginalProxy() { AutoBean<? extends BaseProxy> parent = AutoBeanUtils.getAutoBean(v.getRootBean()).getTag(Constants.PARENT_OBJECT); return parent == null ? null : parent.as(); }