/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.eas.opc.da.dcom;
import org.jinterop.dcom.common.JIException;
import org.jinterop.dcom.core.JIArray;
import org.jinterop.dcom.core.JIFlags;
import org.jinterop.dcom.core.JIPointer;
import org.jinterop.dcom.core.JIString;
import org.jinterop.dcom.core.JIStruct;
import org.jinterop.dcom.core.JIVariant;
/**
*
* @author pk
*/
public class OPCITEMATTRIBUTES
{
private final JIStruct struct;
public OPCITEMATTRIBUTES(JIStruct struct)
{
this.struct = struct;
}
public static JIStruct getEmptyStruct() throws JIException
{
JIStruct struct = new JIStruct();
struct.addMember(new JIString(JIFlags.FLAG_REPRESENTATION_STRING_LPWSTR));//szAccessPath
struct.addMember(new JIString(JIFlags.FLAG_REPRESENTATION_STRING_LPWSTR));//szItemID
struct.addMember(Boolean.class);//bActive
struct.addMember(Integer.class);//hClient
struct.addMember(Integer.class);//hServer
struct.addMember(Integer.class);//dwAccessRights
struct.addMember(Integer.class);//dwBlobSize
struct.addMember(new JIPointer(new JIArray(Byte.class, null, 1, true, false))); //pBlob
struct.addMember(Short.class);//vtRequestedDataType
struct.addMember(Short.class);//vtCanonicalDataType
struct.addMember(Integer.class);//dwEUType
struct.addMember(JIVariant.class);//vEUInfo
return struct;
}
public String getAccessPath()
{
return ((JIString) struct.getMember(0)).getString();
}
public String getItemId()
{
return ((JIString) struct.getMember(1)).getString();
}
public boolean isActive()
{
return ((Boolean) struct.getMember(2));
}
public int getClientHandle()
{
return (Integer) struct.getMember(3);
}
public int getServerHandle()
{
return (Integer) struct.getMember(4);
}
public int getAccessRights()
{
return (Integer) struct.getMember(5);
}
public int getBlobSize()
{
return (Integer) struct.getMember(6);
}
public byte[] getBlob()
{
return null;
}
public short getRequestedDataType()
{
return (Short) struct.getMember(8);
}
public short getCanonicalDataType()
{
return (Short) struct.getMember(9);
}
public short getEUType()
{
return ((Number) struct.getMember(10)).shortValue();
}
public JIVariant getEUInfo()
{
return (JIVariant) struct.getMember(11);
}
public JIStruct getStruct()
{
return struct;
}
}