/**Creates an object of the specified type. Used while deserialiazing this object. * * @param type JIFlags string flags * @see JIFlags#FLAG_REPRESENTATION_STRING_BSTR * @see JIFlags#FLAG_REPRESENTATION_STRING_LPCTSTR * @see JIFlags#FLAG_REPRESENTATION_STRING_LPWSTR * @throws IllegalArgumentException if <code>type</code> is not a string flag. * */ public JIString(int type) { this.type = type; if (type == JIFlags.FLAG_REPRESENTATION_STRING_LPCTSTR || type == JIFlags.FLAG_REPRESENTATION_STRING_LPWSTR) { member = new JIPointer(String.class,true); } else if (type == JIFlags.FLAG_REPRESENTATION_STRING_BSTR) { member = new JIPointer(String.class,false); } else { throw new IllegalArgumentException(JISystem.getLocalizedMessage(JIErrorCodes.JI_UTIL_FLAG_ERROR)); } Variant = null; VariantByRef = null; member.setFlags(type | JIFlags.FLAG_REPRESENTATION_VALID_STRING); }
ArrayDesc ( final JIPointer values ) { this ( values.isNull () ? null : (JIStruct)values.getReferent () ); } }
@Override public int getLengthInBytes ( final Object value, final int FLAG ) { return ( (JIPointer)value ).getLength (); }
void setDeffered(boolean deffered) { /* //this condition is required so that only BSTRs are deffered and also since this member could be deffered and //setting it to true would spoil the logic * this is incorrect logic in the bug sent by Kevin , the ONEVENTSTRUCT consists of LPWSTRs which are deffered */ if (member != null && !member.isReference()) { ((JIPointer)member).setDeffered(true); } }
static JIVariant decode(NetworkDataRepresentation ndr,List defferedPointers, int FLAG, Map additionalData) { JIVariant variant = new JIVariant(); JIPointer ref = new JIPointer(VariantBody.class); ref.setDeffered(true);//this is since this could be part of an array or a struct...for normal calls //as soon as this call finishes a call will be given from JICallobject for it's variantbody. variant.member = (JIPointer)JIMarshalUnMarshalHelper.deSerialize(ndr,ref,defferedPointers,FLAG,additionalData); return variant; }
orpcextentarray.addMember(Integer.class); orpcextentarray.addMember(new JIPointer(new JIArray(new JIPointer(orpcextent),null,1,true))); } catch (JIException e1) { JIPointer orpcextentarrayptr = (JIPointer)JIMarshalUnMarshalHelper.deSerialize(ndr,new JIPointer(orpcextentarray),listOfDefferedPointers,JIFlags.FLAG_NULL,map); int x = 0; ((JIPointer)listOfDefferedPointers.get(x)).replaceSelfWithNewPointer(replacement); //this should replace the value in the original place. x++; listOfDefferedPointers.addAll(x,newList); if (!orpcextentarrayptr.isNull()) JIPointer[] pointers = (JIPointer[])((JIArray)((JIPointer)((JIStruct)orpcextentarrayptr.getReferent()).getMember(2)).getReferent()).getArrayInstance(); for (int i = 0;i < pointers.length;i++) if (pointers[i].isNull()) continue; JIStruct orpcextent2 = (JIStruct)pointers[i].getReferent(); Byte[] byteArray = (Byte[])((JIArray)orpcextent2.getMember(2)).getArrayInstance();
public void getConformantIntArray() throws JIException, InterruptedException, UnknownHostException { JICallBuilder callObject = new JICallBuilder( true); callObject.setOpnum(8); Object results[]; callObject.addOutParamAsType(Integer.class, JIFlags.FLAG_NULL); callObject.addOutParamAsObject(new JIPointer(new JIArray(Integer.class, null, 1, true)), JIFlags.FLAG_NULL); results = comObject.call(callObject); JIArray arrayOfResults = (JIArray)((JIPointer)results[1]).getReferent(); Integer[] arrayOfIntegers = (Integer[]) arrayOfResults.getArrayInstance(); int length = ((Integer)results[0]).intValue(); for (int i = 0; i < length; i++) { System.out.println(arrayOfIntegers[i].intValue()); } }
if (type == JIFlags.FLAG_REPRESENTATION_STRING_LPCTSTR || type == JIFlags.FLAG_REPRESENTATION_STRING_LPWSTR) member = new JIPointer(str,true); Variant = null; VariantByRef = null; member = new JIPointer(str,false); member.setReferent(0x72657355);//"User" in LEndian. Variant = new JIVariant(this); VariantByRef = new JIVariant(this,true); member.setFlags(type | JIFlags.FLAG_REPRESENTATION_VALID_STRING);
/**Returns the flag value for this variant. * * @return */ public int getFlag() { VariantBody variantBody = ((VariantBody)member.getReferent()); return variantBody.FLAG; }
/** Called from Oxid Resolver master, the resolver address are put in here itself * * @param iid * @param ipid * @param oxid * @param oid */ JIInterfacePointer(String iid,int port,JIStdObjRef objref) { member = new JIPointer(new JIInterfacePointerBody(iid,port,objref),false); }
((JIPointer)varDefferedPointers.get(x)).replaceSelfWithNewPointer(replacement); //this should replace the value in the original place. x++; varDefferedPointers.addAll(x,newList); variant = (VariantBody)variantMain.member.getReferent();
void setDeffered(boolean deffered) { member.setDeffered(true); }
( (JIPointer)listOfDefferedPointers.get ( x ) ).replaceSelfWithNewPointer ( replacement ); //this should replace the value in the original place. x++; listOfDefferedPointers.addAll ( x, newList );
private void checkValidity() throws JIException { if (member == null || member.isNull()) { throw new JIException(JIErrorCodes.JI_VARIANT_IS_NULL); } }
JIPointer retVal = ((JIPointer)obj).decode(ndr,defferedPointers,FLAG,additionalData); return retVal;
((JIPointer)value).encode(ndr,defferedPointers,FLAG); return;
orpcextentarray.addMember(Integer.class); orpcextentarray.addMember(new JIPointer(new JIArray(new JIPointer(orpcextent),null,1,true))); } catch (JIException e1) { JIPointer orpcextentarrayptr = (JIPointer)JIMarshalUnMarshalHelper.deSerialize(ndr,new JIPointer(orpcextentarray),listOfDefferedPointers,JIFlags.FLAG_NULL,map); int x = 0; ((JIPointer)listOfDefferedPointers.get(x)).replaceSelfWithNewPointer(replacement); //this should replace the value in the original place. x++; listOfDefferedPointers.addAll(x,newList); if (!orpcextentarrayptr.isNull()) JIPointer[] pointers = (JIPointer[])((JIArray)((JIPointer)((JIStruct)orpcextentarrayptr.getReferent()).getMember(2)).getReferent()).getArrayInstance(); for (int i = 0;i < pointers.length;i++) if (pointers[i].isNull()) continue; JIStruct orpcextent2 = (JIStruct)pointers[i].getReferent(); Byte[] byteArray = (Byte[])((JIArray)orpcextent2.getMember(2)).getArrayInstance();
void setDeffered ( final boolean deffered ) { /* //this condition is required so that only BSTRs are deffered and also since this member could be deffered and //setting it to true would spoil the logic * this is incorrect logic in the bug sent by Kevin , the ONEVENTSTRUCT consists of LPWSTRs which are deffered */ if ( this.member != null && !this.member.isReference () ) { this.member.setDeffered ( true ); } }
public void getConformantIntArray() throws JIException, InterruptedException, UnknownHostException { JICallBuilder callObject = new JICallBuilder( true); callObject.setOpnum(8); Object results[]; callObject.addOutParamAsType(Integer.class, JIFlags.FLAG_NULL); callObject.addOutParamAsObject(new JIPointer(new JIArray(Integer.class, null, 1, true)), JIFlags.FLAG_NULL); results = comObject.call(callObject); JIArray arrayOfResults = (JIArray)((JIPointer)results[1]).getReferent(); Integer[] arrayOfIntegers = (Integer[]) arrayOfResults.getArrayInstance(); int length = ((Integer)results[0]).intValue(); for (int i = 0; i < length; i++) { System.out.println(arrayOfIntegers[i].intValue()); } }
if (type == JIFlags.FLAG_REPRESENTATION_STRING_LPCTSTR || type == JIFlags.FLAG_REPRESENTATION_STRING_LPWSTR) member = new JIPointer(str,true); Variant = null; VariantByRef = null; member = new JIPointer(str,false); member.setReferent(0x72657355);//"User" in LEndian. Variant = new JIVariant(this); VariantByRef = new JIVariant(this,true); member.setFlags(type | JIFlags.FLAG_REPRESENTATION_VALID_STRING);