/** * Writes an attribute in TextSyntax into the stream. * <p> * By default attributes are qritten as TEXT_WITHOUT_LANGUAGE value-tag. * As some attributes in the JPS are TextSyntax attributes but actually * of NAME value-tag in IPP this method checks for these attributes and * writes them as NAME_WITHOUT_LANGUAGE value-tag into the stream. * </p> * * @param attribute the attribute * @param out the stream to write to * @throws IOException if thrown by the stream */ private void write(TextSyntax attribute) throws IOException { // We only use *WithoutLanguage, correct according to spec. String name = ((Attribute) attribute).getName(); if (attribute instanceof RequestingUserName || attribute instanceof JobName || attribute instanceof DocumentName || attribute instanceof JobOriginatingUserName) out.writeByte(IppValueTag.NAME_WITHOUT_LANGUAGE); else if (attribute instanceof DocumentFormat) out.writeByte(IppValueTag.MIME_MEDIA_TYPE); else out.writeByte(IppValueTag.TEXT_WITHOUT_LANGUAGE); out.writeShort(name.length()); out.write(name.getBytes()); out.writeShort(attribute.getValue().length()); out.write(attribute.getValue().getBytes()); }
private String getDocName(final Object doc, final AttributeSet... attrSets) { Attribute name = getAttribute(DocumentName.class, attrSets); if (name == null) { name = getAttribute(JobName.class, attrSets); } if ((name == null) && (doc instanceof Component)) { Component c = (Component) doc; while (c != null) { if (c instanceof Frame) { if (((Frame) c).getTitle().length() > 0) { return ((Frame) c).getTitle(); } } c = c.getParent(); } } return name != null ? ((TextSyntax) name).getValue() : WinPrintService.DEFAULT_JOB_NAME.getValue(); }
void fillUserNameField() { boolean flg = myService.isAttributeCategorySupported(RequestingUserName.class); userNameTxt.setEnabled(flg); userNameLabel.setEnabled(flg); if (firstUse && attrs.containsKey(RequestingUserName.class)) { userNameTxt.setText(((TextSyntax) attrs.get(RequestingUserName.class)).getValue()); } if (flg && (userNameTxt.getText().length() <= 0)) { RequestingUserName defaul = (RequestingUserName) (myService .getDefaultAttributeValue(RequestingUserName.class)); userNameTxt.setText(defaul==null ? "" : (String) (defaul.getValue())); } }
/** * Writes the given attribute groups of the given map instance * (key=group, values=set of attributes) into the supplied data * output stream. * * @param attributes the set with the attributes. * * @throws IOException if thrown by the used DataOutputStream. * @throws IppException if unknown attributes occur. */ public void writeAttributes(AttributeSet attributes) throws IOException, IppException { Attribute[] attributeArray = attributes.toArray(); for (int i = 0; i < attributeArray.length; i++) { logger.log(Component.IPP, "Attribute: Name: <" + attributeArray[i] .getCategory().getName() + "> Value: <" + attributeArray[i].toString() + ">"); if (attributeArray[i] instanceof IntegerSyntax) write((IntegerSyntax) attributeArray[i]); else if (attributeArray[i] instanceof TextSyntax) write((TextSyntax) attributeArray[i]); else if (attributeArray[i] instanceof DateTimeSyntax) write((DateTimeSyntax) attributeArray[i]); else if (attributeArray[i] instanceof ResolutionSyntax) write((ResolutionSyntax) attributeArray[i]); else if (attributeArray[i] instanceof SetOfIntegerSyntax) write((SetOfIntegerSyntax) attributeArray[i]); else if (attributeArray[i] instanceof EnumSyntax) write((EnumSyntax) attributeArray[i]); else if (attributeArray[i] instanceof URISyntax) write((URISyntax) attributeArray[i]); else if (attributeArray[i] instanceof CharsetSyntax) write((CharsetSyntax) attributeArray[i]); else if (attributeArray[i] instanceof NaturalLanguageSyntax) write((NaturalLanguageSyntax) attributeArray[i]); else if (attributeArray[i] instanceof RequestedAttributes) write((RequestedAttributes) attributeArray[i]); else throw new IppException("Unknown syntax type"); } }
void fillJobNameField() { boolean supported = myService.isAttributeCategorySupported(JobName.class); jobNameTxt.setEnabled(supported); jobNameLabel.setEnabled(supported); if (firstUse && attrs.containsKey(JobName.class)) { jobNameTxt.setText(((TextSyntax) attrs.get(JobName.class)).getValue()); } if(supported && (jobNameTxt.getText().length() <= 0)) { TextSyntax txt = (TextSyntax) (myService.getDefaultAttributeValue(JobName.class)); jobNameTxt.setText(txt == null ? "" : txt.getValue()); } }
@Override public String getJobName() { return ((TextSyntax) attributes.get(JobName.class)).getValue(); }
@Override public String getUserName() { return ((TextSyntax) attributes.get(RequestingUserName.class)) .getValue(); }
public static Object getIppValue(Attribute attr, byte ippvtag) { Object o = null; switch (ippvtag) { // integer values for the "value-tag" field. case IppAttribute.TAG_BOOLEAN: case IppAttribute.TAG_INTEGER: case IppAttribute.TAG_ENUM: if (attr instanceof IntegerSyntax) { o = new Integer(((IntegerSyntax) attr).getValue()); } else if (attr instanceof EnumSyntax) { o = new Integer(((EnumSyntax) attr).getValue()); } else if (attr instanceof DateTimeSyntax || attr instanceof ResolutionSyntax || attr instanceof SetOfIntegerSyntax || attr instanceof Size2DSyntax || attr instanceof TextSyntax || attr instanceof URISyntax) { // TODO - process other attr's types } break; // octetString values for the "value-tag" field. case IppAttribute.TAG_DATETIME: case IppAttribute.TAG_RESOLUTION: case IppAttribute.TAG_RANGEOFINTEGER: case IppAttribute.TAG_OCTETSTRINGUNSPECIFIEDFORMAT: case IppAttribute.TAG_TEXTWITHLANGUAGE: case IppAttribute.TAG_NAMEWITHLANGUAGE: if (attr instanceof IntegerSyntax) { // TODO - it seems that this needs to be fixed o = new Integer(((IntegerSyntax) attr).toString()); } else if (attr instanceof EnumSyntax) { // TODO - it seems that this needs to be fixed o = new Integer(((EnumSyntax) attr).toString()); } else if (attr instanceof DateTimeSyntax || attr instanceof ResolutionSyntax || attr instanceof SetOfIntegerSyntax || attr instanceof Size2DSyntax) { // TODO - process other attr's types } else if (attr instanceof TextSyntax) { // TODO - it seems that this needs to be fixed o = new Integer(((TextSyntax) attr).toString()); } else if (attr instanceof URISyntax) { // TODO - it seems that this needs to be fixed o = new Integer(((URISyntax) attr).toString()); } break; // character-string values for the "value-tag" field case IppAttribute.TAG_TEXTWITHOUTLANGUAGE: case IppAttribute.TAG_NAMEWITHOUTLANGUAGE: case IppAttribute.TAG_KEYWORD: case IppAttribute.TAG_URI: case IppAttribute.TAG_URISCHEME: case IppAttribute.TAG_CHARSET: case IppAttribute.TAG_NATURAL_LANGUAGE: case IppAttribute.TAG_MIMEMEDIATYPE: if (attr instanceof IntegerSyntax) { o = ((IntegerSyntax) attr).toString(); } else if (attr instanceof EnumSyntax) { o = ((EnumSyntax) attr).toString(); } else if (attr instanceof DateTimeSyntax || attr instanceof ResolutionSyntax || attr instanceof SetOfIntegerSyntax || attr instanceof Size2DSyntax) { // TODO - process other attr's types } else if (attr instanceof TextSyntax) { o = ((TextSyntax) attr).toString(); } else if (attr instanceof URISyntax) { o = ((URISyntax) attr).toString(); } break; default: break; } return o; }
/** * Returns the name of the print job. * * @return The name of the print job. */ public String getJobName() { return ((TextSyntax)attributes.get( jobNameClass )).getValue(); }
/** * Returns the printing user name. * * @return The printing username. */ public String getUserName() { return ((TextSyntax)attributes.get( userNameClass )).getValue(); }