package opc.ua.services.sets;

import opc.ua.services.common.DiagnosticInfo;
import opc.ua.services.common.ExpandedNodeId;
import opc.ua.services.common.RequestHeader;
import opc.ua.services.common.ResponseHeader;
import opc.ua.services.common.StatusCode;

public class QueryFirst {

	/**
	 * request
	 */
	private RequestHeader requestHeader;
	private ViewDescription view;
	private NodeTypeDescription[] nodeTypes;
	private ContentFilter filter;
	private Counter maxDataSetsToReturn;
	private Counter maxReferencesToReturn;

	/**
	 * response
	 */
	private ResponseHeader responseHeader;
	private QueryDataSet[] queryDataSets;
	private ContinuationPoint continuationPoint;
	private ParsingResult[] parsingResults;
	private DiagnosticInfo[] diagnosticInfos;
	private ContentFilterResult filterResult;
	
	
	private class NodeTypeDescription {
	    private ExpandedNodeId typeDefinitionNode;
	    private boolean includeSubtypes;
	    private QueryDataDescription[] dataToReturn;
	}
	
	private class QueryDataDescription {
	    private RelativePath relativePath;
	    /** IntegerId */
	    private Integer attributeId;
	    private NumericRange indexRange;
	}

	private class ParsingResult {
		private StatusCode statusCode;
	    private StatusCode[] dataStatusCodes;
	    private DiagnosticInfo[] dataDiagnosticInfos;
	}

}
