system/src/sc/lang/java/InterfaceDeclaration.java
public boolean transform(ILanguageModel.RuntimeType runtime) {
      boolean any = false;

      if (excluded)
         return transformExcluded(runtime);

      // Before we transform the fields, we first make a copy of the entire field into the hidden body.  When we are transforming
      // the classes, we'll need to get at the complete field definition for copying it into them.
      if (body != null && getJavaModel().enableExtensions()) {
         for (int i = 0; i < body.size(); i++) {
            Statement st = body.get(i);
            // If this is not a constant field, we move the statement into the hidden body and remove it from the .java file's interface body
            // Instead, we add a get/set method for the field in the interface
            if (isInterfaceField(st)) {
               addToHiddenBody((Statement) st.deepCopy(CopyNormal, null), false);
            }
            else if (st instanceof PropertyAssignment) {
               body.remove(i);
               i--;
               addToHiddenBody(st, false);
            }
            // Handle non-empty methods by moving them to the hiddenBody and getting rid of the body for the interface itself
            else if (st instanceof MethodDefinition) {
               MethodDefinition meth = (MethodDefinition) st;
               if (meth.suppressInterfaceMethod()) {
                  addToHiddenBody((Statement) meth.deepCopy(CopyNormal, null), false);
                  meth.setProperty("body", null);
               }
            }
         }
         any = true;
      }

      if (super.transform(runtime))
         any = true;

      if (body != null && getJavaModel().enableExtensions()) {
         for (int i = 0; i < body.size(); i++) {
            Statement st = body.get(i);
            if (st instanceof MethodDefinition) {
               MethodDefinition meth = (MethodDefinition) st;
               // For methods which have an implementation, we preserve them in hidden body and then nix the body
               if (meth.suppressInterfaceMethod()) {
                  addToHiddenBody((Statement) st.deepCopy(CopyNormal, null), false);
                  meth.setProperty("body", null);
                  any = true;
               }
            }
         }
      }
      return any;
   }
/*
   public List<Object> getDeclaredFields(String modifier, boolean hasModifier, boolean dynamicOnly, boolean includeObjs, boolean includeAssigns) {
      List<Object> props = super.getDeclaredFields(modifier, hasModifier, dynamicOnly, includeObjs, includeAssigns);
      if (props == null)
         return null;
      // Do not include the interface fields in the default list of fields declared.  We need to merge them in separately
      for (int i = 0; i < props.size(); i++) {
         Object p = props.get(i);
         if (p instanceof Statement && (p instanceof PropertyAssignment || isInterfaceField((Statement) p))) {
            props.remove(i);
            i--;
         }
      }
      return props;
   }
   */
public List getDeclaredFields(String modifier, boolean hasModifier, boolean dynamicOnly, boolean includeObjs, boolean includeAssigns) {
List props = super.getDeclaredFields(modifier, hasModifier, dynamicOnly, includeObjs, includeAssigns);
if (props == null)
return null;
Do not include the interface fields in the default list of fields declared.
public List getDeclaredFields ( String modifier boolean hasModifier boolean dynamicOnly boolean includeObjs boolean includeAssigns ) { List props = super . getDeclaredFields ( modifier hasModifier dynamicOnly includeObjs includeAssigns ) ; if ( props == null ) return null ; Do not include the interface fields in the default list of fields declared .
public boolean transform(ILanguageModel.RuntimeType runtime) {
      boolean any = false;
      if (excluded)
         return transformExcluded(runtime);
      if (body != null && getJavaModel().enableExtensions()) {
         for (int i = 0; i < body.size(); i++) {
            Statement st = body.get(i);
            if (isInterfaceField(st)) {
               addToHiddenBody((Statement) st.deepCopy(CopyNormal, null), false);
            }
            else if (st instanceof PropertyAssignment) {
               body.remove(i);
               i--;
               addToHiddenBody(st, false);
            }
            else if (st instanceof MethodDefinition) {
               MethodDefinition meth = (MethodDefinition) st;
               if (meth.suppressInterfaceMethod()) {
                  addToHiddenBody((Statement) meth.deepCopy(CopyNormal, null), false);
                  meth.setProperty("body", null);
               }
            }
         }
         any = true;
      }
      if (super.transform(runtime))
         any = true;
      if (body != null && getJavaModel().enableExtensions()) {
         for (int i = 0; i < body.size(); i++) {
            Statement st = body.get(i);
            if (st instanceof MethodDefinition) {
               MethodDefinition meth = (MethodDefinition) st;
               if (meth.suppressInterfaceMethod()) {
                  addToHiddenBody((Statement) st.deepCopy(CopyNormal, null), false);
                  meth.setProperty("body", null);
                  any = true;
               }
            }
         }
      }
      return any;
   }
public boolean transform ( ILanguageModel . RuntimeType runtime ) { boolean any = false ; if ( excluded ) return transformExcluded ( runtime ) ; if ( body != null && getJavaModel ( ) . enableExtensions ( ) ) { for ( int i = 0 ; i < body . size ( ) ; i ++ ) { Statement st = body . get ( i ) ; if ( isInterfaceField ( st ) ) { addToHiddenBody ( ( Statement ) st . deepCopy ( CopyNormal , null ) , false ) ; } else if ( st instanceof PropertyAssignment ) { body . remove ( i ) ; i -- ; addToHiddenBody ( st , false ) ; } else if ( st instanceof MethodDefinition ) { MethodDefinition meth = ( MethodDefinition ) st ; if ( meth . suppressInterfaceMethod ( ) ) { addToHiddenBody ( ( Statement ) meth . deepCopy ( CopyNormal , null ) , false ) ; meth . setProperty ( "body" , null ) ; } } } any = true ; } if ( super . transform ( runtime ) ) any = true ; if ( body != null && getJavaModel ( ) . enableExtensions ( ) ) { for ( int i = 0 ; i < body . size ( ) ; i ++ ) { Statement st = body . get ( i ) ; if ( st instanceof MethodDefinition ) { MethodDefinition meth = ( MethodDefinition ) st ; if ( meth . suppressInterfaceMethod ( ) ) { addToHiddenBody ( ( Statement ) st . deepCopy ( CopyNormal , null ) , false ) ; meth . setProperty ( "body" , null ) ; any = true ; } } } } return any ; }
public List<Object> getDeclaredFields(String modifier, boolean hasModifier, boolean dynamicOnly, boolean includeObjs, boolean includeAssigns) {
List<Object> props = super.getDeclaredFields(modifier, hasModifier, dynamicOnly, includeObjs, includeAssigns);
if (props == null)
return null;
 Do not include the interface fields in the default list of fields declared.
public List<Object > getDeclaredFields ( String modifier boolean hasModifier boolean dynamicOnly boolean includeObjs boolean includeAssigns ) { List<Object > props = super . getDeclaredFields ( modifier hasModifier dynamicOnly includeObjs includeAssigns ) ; if ( props == null ) return null ; Do not include the interface fields in the default list of fields declared .
// Before we transform the fields, we first make a copy of the entire field into the hidden body.  When we are transforming // the classes, we'll need to get at the complete field definition for copying it into them. // If this is not a constant field, we move the statement into the hidden body and remove it from the .java file's interface body // Instead, we add a get/set method for the field in the interface // Handle non-empty methods by moving them to the hiddenBody and getting rid of the body for the interface itself // For methods which have an implementation, we preserve them in hidden body and then nix the body