package opc.ua.addressspace.nodeclasses;

import java.awt.Image;

public class ObjectNode extends BaseNode {

	/**
	 * attributes
	 */
	private byte eventNotifier;
	
	/**
	 * references
	 */
	/** 
	 * TODO - OPC UA Part 3, p.34
	 */
	 private BaseNode[] hasComponent;
	 private BaseNode[] hasProperty;
	 private BaseNode hasModellingRule;
	 private BaseNode hasTypeDefinition;
	 private BaseNode hasModelParent;
	 private BaseNode[] hasEventSource;
	 private BaseNode[] hasNotifier;
	 private BaseNode[] organizes;
	 private BaseNode hasDescription;
	 //other references
	
	/**
	 * properties
	 */
	private String nodeVersion;
	private Image icon;
	
	/**
	 * TODO - OPC UA Part 3, p.63
	 */
	/** NamingRuleType */
	private ModellingNamingRule NamingRule;

	public byte getEventNotifier() {
		return eventNotifier;
	}

	public void setEventNotifier(byte eventNotifier) {
		this.eventNotifier = eventNotifier;
	}

	public BaseNode[] getHasComponent() {
		return hasComponent;
	}

	public void setHasComponent(BaseNode[] hasComponent) {
		this.hasComponent = hasComponent;
	}

	public BaseNode[] getHasProperty() {
		return hasProperty;
	}

	public void setHasProperty(BaseNode[] hasProperty) {
		this.hasProperty = hasProperty;
	}

	public BaseNode getHasModellingRule() {
		return hasModellingRule;
	}

	public void setHasModellingRule(BaseNode hasModellingRule) {
		this.hasModellingRule = hasModellingRule;
	}

	public BaseNode getHasTypeDefinition() {
		return hasTypeDefinition;
	}

	public void setHasTypeDefinition(BaseNode hasTypeDefinition) {
		this.hasTypeDefinition = hasTypeDefinition;
	}

	public BaseNode getHasModelParent() {
		return hasModelParent;
	}

	public void setHasModelParent(BaseNode hasModelParent) {
		this.hasModelParent = hasModelParent;
	}

	public BaseNode[] getHasEventSource() {
		return hasEventSource;
	}

	public void setHasEventSource(BaseNode[] hasEventSource) {
		this.hasEventSource = hasEventSource;
	}

	public BaseNode[] getHasNotifier() {
		return hasNotifier;
	}

	public void setHasNotifier(BaseNode[] hasNotifier) {
		this.hasNotifier = hasNotifier;
	}

	public BaseNode[] getOrganizes() {
		return organizes;
	}

	public void setOrganizes(BaseNode[] organizes) {
		this.organizes = organizes;
	}

	public BaseNode getHasDescription() {
		return hasDescription;
	}

	public void setHasDescription(BaseNode hasDescription) {
		this.hasDescription = hasDescription;
	}

	public String getNodeVersion() {
		return nodeVersion;
	}

	public void setNodeVersion(String nodeVersion) {
		this.nodeVersion = nodeVersion;
	}

	public Image getIcon() {
		return icon;
	}

	public void setIcon(Image icon) {
		this.icon = icon;
	}

	public ModellingNamingRule getNamingRule() {
		return NamingRule;
	}

	public void setNamingRule(ModellingNamingRule namingRule) {
		NamingRule = namingRule;
	}
}
