/*
 */

package au.gov.ansto.bragg.nexus.base;

import java.beans.PropertyVetoException;

/** Support for type handling of data content.
 *
 * <p>Although this integrates well with the old-fashioned integer coded 
 * type management system of NeXus, the entire thing could be replaced
 * with Java generics (a.k.a. C++ template parameters) 
 * </p>
 *
 * @author drck
 * @version "%I%, %G%"
 */
public interface NXtyped extends NXobject {
 
    String $NXtype = "NXtype";
    /** The integer coded NX type handled by this.
     */     
    Integer getNXtype();
    void setNXtype(Integer type) throws PropertyVetoException;
    
    String typeAsString();

    String $content = "content";    
    /** The content (the type of which is indicated by {@link #getNXtype()}) */
    Object getContent();    
    void setContent(Object content);
}
