public Object getValue(Object ctx) { IGosuClass gsClass = (IGosuClass) getContainer().getOwnersType(); try { Field field = gsClass.getBackingClass().getDeclaredField(_strIdentifer); field.setAccessible(true); return field.get(ctx); } catch (Exception e) { throw new RuntimeException(e); } }
public void setValue(Object ctx, Object value) { IGosuClass gsClass = _gosuClass; try { Field field = gsClass.getBackingClass().getDeclaredField(_strIdentifer); field.setAccessible(true); field.set(ctx, value); } catch (Exception e) { throw new RuntimeException(e); } }
private IGosuClass createJavaProxyImmediately(IJavaTypeInternal type) { IGosuClassInternal gsAdapterClass; if (type.getEnclosingType() != null) { // Ensure enclosing type is proxied; it contains the gosu source for the inner type IGosuClass outerProxy = (IGosuClass) TypeSystem.getByFullName( getProxyName((IJavaType) TypeLord.getOuterMostEnclosingClass(type))); outerProxy.getInnerClasses(); if (!outerProxy.isCompilingDeclarations()) { gsAdapterClass = (IGosuClassInternal) outerProxy.getInnerClass( type.getRelativeName().substring(type.getRelativeName().indexOf('.') + 1)); if (gsAdapterClass == null) { TypeSystem.refresh((ITypeRef) outerProxy, true); gsAdapterClass = (IGosuClassInternal) outerProxy.getInnerClass( type.getRelativeName().substring(type.getRelativeName().indexOf('.') + 1)); } } else { return null; } } else { if (type.isInterface()) { gsAdapterClass = (IGosuClassInternal) createJavaInterfaceProxy(type); } else { gsAdapterClass = (IGosuClassInternal) createJavaClassProxy(type); } } type.setAdapterClass(gsAdapterClass); gsAdapterClass.setJavaType(type); return gsAdapterClass; }