Coverage Report - javafx.reflect.ObjectRef
 
Classes in this File Line Coverage Branch Coverage Complexity
ObjectRef
12%
2/17
0%
0/2
0
 
 1  
 /*
 2  
  * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
 3  
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 4  
  *
 5  
  * This code is free software; you can redistribute it and/or modify it
 6  
  * under the terms of the GNU General Public License version 2 only, as
 7  
  * published by the Free Software Foundation.  Sun designates this
 8  
  * particular file as subject to the "Classpath" exception as provided
 9  
  * by Sun in the LICENSE file that accompanied this code.
 10  
  *
 11  
  * This code is distributed in the hope that it will be useful, but WITHOUT
 12  
  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 13  
  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 14  
  * version 2 for more details (a copy is included in the LICENSE file that
 15  
  * accompanied this code).
 16  
  *
 17  
  * You should have received a copy of the GNU General Public License version
 18  
  * 2 along with this work; if not, write to the Free Software Foundation,
 19  
  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 20  
  *
 21  
  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
 22  
  * CA 95054 USA or visit www.sun.com if you need additional information or
 23  
  * have any questions.
 24  
  */
 25  
 
 26  
 package javafx.reflect;
 27  
 
 28  
 /** A handle/proxy for an {@code Object} reference.
 29  
  */
 30  
 
 31  0
 public abstract class ObjectRef extends ValueRef {
 32  1
     protected ObjectRef() {
 33  1
     }
 34  
 
 35  
     public abstract ClassRef getType();
 36  
 
 37  
     public ReflectionContext getReflectionContect() {
 38  0
       return getType().getReflectionContect();
 39  
     }
 40  
 
 41  
   /** Initialize an attribute of an object to a given value.
 42  
    * Should only be called between {@code cls.allocate()} and {@code obj.initialize()}.
 43  
    */
 44  
   public void initAttribute(String name, ValueRef value) {
 45  0
     AttributeRef attr = getType().getAttribute(name);
 46  0
     initAttribute(attr, value);
 47  0
   }
 48  
   /** Initialize an attribute of an object to a given value.
 49  
    * Should only be called between {@code cls.allocate()} and {@code obj.initialize()}.
 50  
    */
 51  
   public void initAttribute(AttributeRef attr, ValueRef value) {
 52  0
       throw new UnsupportedOperationException("unimplemented: initAttribute");
 53  
   }
 54  
   /** Bind an attribute of an object to a given location.
 55  
    * Should only be called between {@code cls.allocate()} and {@code obj.initialize()}.
 56  
    */
 57  
   public void initBinding(String name, LocationRef location) {
 58  0
     AttributeRef attr = getType().getAttribute(name);
 59  0
     initBinding(attr, location);
 60  0
   }
 61  
   /** Bind an attribute of an object to a given location.
 62  
    * Should only be called between {@code cls.allocate()} and {@code obj.initialize()}.
 63  
    */
 64  
   public void initBinding(AttributeRef attr, LocationRef location) {
 65  0
       throw new UnsupportedOperationException("unimplemented: initBinding");
 66  
   }
 67  
 
 68  
   /** Finish constructing an object.
 69  
    * Run init hooks, triggers etc.
 70  
    * @return the constructed object - normally the same as this.
 71  
    */
 72  
   public ObjectRef initialize() {
 73  0
       throw new UnsupportedOperationException("unimplemented: initialize");
 74  
   }
 75  
 
 76  
   /** Convenience method to invoke a member function. */
 77  
   public ValueRef invoke(String name, ValueRef... args) {
 78  0
     TypeRef[] types = new TypeRef[args.length];
 79  0
     for (int i = args.length;  --i >= 0; ) types[i] = args[i].getType();
 80  0
     return getType().getMethod(name, types).invoke(this, args);
 81  
   }
 82  
   /** Convenience method to invoke a member function. */
 83  
   public ValueRef invoke(MethodRef method, ValueRef... args) {
 84  0
     return method.invoke(this, args);
 85  
   }
 86  
 }