提交 8691e416 编写于 作者: J jgodinez

6732647: isAttributeValueSupported() is not consistant with...

6732647: isAttributeValueSupported() is not consistant with getSupportedValues() for Copies, TEXT flavor
Reviewed-by: tdv, prr
上级 c096f95c
...@@ -487,28 +487,26 @@ public class IPPPrintService implements PrintService, SunPrinterJobService { ...@@ -487,28 +487,26 @@ public class IPPPrintService implements PrintService, SunPrinterJobService {
/* Test if the flavor is compatible with the category */ /* Test if the flavor is compatible with the category */
if ((category == Copies.class) || if ((category == Copies.class) ||
(category == CopiesSupported.class)) { (category == CopiesSupported.class)) {
CopiesSupported cs = new CopiesSupported(1, MAXCOPIES); if (flavor == null ||
AttributeClass attribClass = (getAttMap != null) ? !(flavor.equals(DocFlavor.INPUT_STREAM.POSTSCRIPT) ||
(AttributeClass)getAttMap.get(cs.getName()) : null; flavor.equals(DocFlavor.URL.POSTSCRIPT) ||
if (attribClass != null) { flavor.equals(DocFlavor.BYTE_ARRAY.POSTSCRIPT))) {
int[] range = attribClass.getIntRangeValue(); CopiesSupported cs = new CopiesSupported(1, MAXCOPIES);
cs = new CopiesSupported(range[0], range[1]); AttributeClass attribClass = (getAttMap != null) ?
(AttributeClass)getAttMap.get(cs.getName()) : null;
if (attribClass != null) {
int[] range = attribClass.getIntRangeValue();
cs = new CopiesSupported(range[0], range[1]);
}
return cs;
} else {
return null;
} }
return cs;
} else if (category == Chromaticity.class) { } else if (category == Chromaticity.class) {
if (flavor == null || if (flavor == null ||
flavor.equals(DocFlavor.SERVICE_FORMATTED.PAGEABLE) || flavor.equals(DocFlavor.SERVICE_FORMATTED.PAGEABLE) ||
flavor.equals(DocFlavor.SERVICE_FORMATTED.PRINTABLE) || flavor.equals(DocFlavor.SERVICE_FORMATTED.PRINTABLE) ||
flavor.equals(DocFlavor.BYTE_ARRAY.GIF) || !isIPPSupportedImages(flavor.getMimeType())) {
flavor.equals(DocFlavor.INPUT_STREAM.GIF) ||
flavor.equals(DocFlavor.URL.GIF) ||
flavor.equals(DocFlavor.BYTE_ARRAY.JPEG) ||
flavor.equals(DocFlavor.INPUT_STREAM.JPEG) ||
flavor.equals(DocFlavor.URL.JPEG) ||
flavor.equals(DocFlavor.BYTE_ARRAY.PNG) ||
flavor.equals(DocFlavor.INPUT_STREAM.PNG) ||
flavor.equals(DocFlavor.URL.PNG)) {
Chromaticity[]arr = new Chromaticity[1]; Chromaticity[]arr = new Chromaticity[1];
arr[0] = Chromaticity.COLOR; arr[0] = Chromaticity.COLOR;
return (arr); return (arr);
...@@ -1220,7 +1218,7 @@ public class IPPPrintService implements PrintService, SunPrinterJobService { ...@@ -1220,7 +1218,7 @@ public class IPPPrintService implements PrintService, SunPrinterJobService {
} }
public boolean isAttributeValueSupported(Attribute attr, public boolean isAttributeValueSupported(Attribute attr,
DocFlavor flavor, DocFlavor flavor,
AttributeSet attributes) { AttributeSet attributes) {
if (attr == null) { if (attr == null) {
...@@ -1249,21 +1247,18 @@ public class IPPPrintService implements PrintService, SunPrinterJobService { ...@@ -1249,21 +1247,18 @@ public class IPPPrintService implements PrintService, SunPrinterJobService {
if ((flavor == null) || if ((flavor == null) ||
flavor.equals(DocFlavor.SERVICE_FORMATTED.PAGEABLE) || flavor.equals(DocFlavor.SERVICE_FORMATTED.PAGEABLE) ||
flavor.equals(DocFlavor.SERVICE_FORMATTED.PRINTABLE) || flavor.equals(DocFlavor.SERVICE_FORMATTED.PRINTABLE) ||
flavor.equals(DocFlavor.BYTE_ARRAY.GIF) || !isIPPSupportedImages(flavor.getMimeType())) {
flavor.equals(DocFlavor.INPUT_STREAM.GIF) ||
flavor.equals(DocFlavor.URL.GIF) ||
flavor.equals(DocFlavor.BYTE_ARRAY.JPEG) ||
flavor.equals(DocFlavor.INPUT_STREAM.JPEG) ||
flavor.equals(DocFlavor.URL.JPEG) ||
flavor.equals(DocFlavor.BYTE_ARRAY.PNG) ||
flavor.equals(DocFlavor.INPUT_STREAM.PNG) ||
flavor.equals(DocFlavor.URL.PNG)) {
return attr == Chromaticity.COLOR; return attr == Chromaticity.COLOR;
} else { } else {
return false; return false;
} }
} else if (attr.getCategory() == Copies.class) { } else if (attr.getCategory() == Copies.class) {
return isSupportedCopies((Copies)attr); return (flavor == null ||
!(flavor.equals(DocFlavor.INPUT_STREAM.POSTSCRIPT) ||
flavor.equals(DocFlavor.URL.POSTSCRIPT) ||
flavor.equals(DocFlavor.BYTE_ARRAY.POSTSCRIPT))) &&
isSupportedCopies((Copies)attr);
} else if (attr.getCategory() == Destination.class) { } else if (attr.getCategory() == Destination.class) {
if (flavor == null || if (flavor == null ||
flavor.equals(DocFlavor.SERVICE_FORMATTED.PAGEABLE) || flavor.equals(DocFlavor.SERVICE_FORMATTED.PAGEABLE) ||
......
...@@ -686,19 +686,7 @@ public class UnixPrintService implements PrintService, AttributeUpdater, ...@@ -686,19 +686,7 @@ public class UnixPrintService implements PrintService, AttributeUpdater,
} }
if (category == Chromaticity.class) { if (category == Chromaticity.class) {
if (flavor == null || if (flavor == null || isServiceFormattedFlavor(flavor)) {
flavor.equals(DocFlavor.SERVICE_FORMATTED.PAGEABLE) ||
flavor.equals(DocFlavor.SERVICE_FORMATTED.PRINTABLE) ||
flavor.equals(DocFlavor.BYTE_ARRAY.GIF) ||
flavor.equals(DocFlavor.INPUT_STREAM.GIF) ||
flavor.equals(DocFlavor.URL.GIF) ||
flavor.equals(DocFlavor.BYTE_ARRAY.JPEG) ||
flavor.equals(DocFlavor.INPUT_STREAM.JPEG) ||
flavor.equals(DocFlavor.URL.JPEG) ||
flavor.equals(DocFlavor.BYTE_ARRAY.PNG) ||
flavor.equals(DocFlavor.INPUT_STREAM.PNG) ||
flavor.equals(DocFlavor.URL.PNG)) {
Chromaticity[]arr = new Chromaticity[1]; Chromaticity[]arr = new Chromaticity[1];
arr[0] = Chromaticity.COLOR; arr[0] = Chromaticity.COLOR;
return (arr); return (arr);
...@@ -730,18 +718,7 @@ public class UnixPrintService implements PrintService, AttributeUpdater, ...@@ -730,18 +718,7 @@ public class UnixPrintService implements PrintService, AttributeUpdater,
} }
return new RequestingUserName(userName, null); return new RequestingUserName(userName, null);
} else if (category == OrientationRequested.class) { } else if (category == OrientationRequested.class) {
if (flavor == null || if (flavor == null || isServiceFormattedFlavor(flavor)) {
flavor.equals(DocFlavor.SERVICE_FORMATTED.PAGEABLE) ||
flavor.equals(DocFlavor.SERVICE_FORMATTED.PRINTABLE) ||
flavor.equals(DocFlavor.INPUT_STREAM.GIF) ||
flavor.equals(DocFlavor.INPUT_STREAM.JPEG) ||
flavor.equals(DocFlavor.INPUT_STREAM.PNG) ||
flavor.equals(DocFlavor.BYTE_ARRAY.GIF) ||
flavor.equals(DocFlavor.BYTE_ARRAY.JPEG) ||
flavor.equals(DocFlavor.BYTE_ARRAY.PNG) ||
flavor.equals(DocFlavor.URL.GIF) ||
flavor.equals(DocFlavor.URL.JPEG) ||
flavor.equals(DocFlavor.URL.PNG)) {
OrientationRequested []arr = new OrientationRequested[3]; OrientationRequested []arr = new OrientationRequested[3];
arr[0] = OrientationRequested.PORTRAIT; arr[0] = OrientationRequested.PORTRAIT;
arr[1] = OrientationRequested.LANDSCAPE; arr[1] = OrientationRequested.LANDSCAPE;
...@@ -752,7 +729,14 @@ public class UnixPrintService implements PrintService, AttributeUpdater, ...@@ -752,7 +729,14 @@ public class UnixPrintService implements PrintService, AttributeUpdater,
} }
} else if ((category == Copies.class) || } else if ((category == Copies.class) ||
(category == CopiesSupported.class)) { (category == CopiesSupported.class)) {
return new CopiesSupported(1, MAXCOPIES); if (flavor == null ||
!(flavor.equals(DocFlavor.INPUT_STREAM.POSTSCRIPT) ||
flavor.equals(DocFlavor.URL.POSTSCRIPT) ||
flavor.equals(DocFlavor.BYTE_ARRAY.POSTSCRIPT))) {
return new CopiesSupported(1, MAXCOPIES);
} else {
return null;
}
} else if (category == Media.class) { } else if (category == Media.class) {
Media []arr = new Media[mediaSizes.length]; Media []arr = new Media[mediaSizes.length];
System.arraycopy(mediaSizes, 0, arr, 0, mediaSizes.length); System.arraycopy(mediaSizes, 0, arr, 0, mediaSizes.length);
...@@ -917,8 +901,10 @@ public class UnixPrintService implements PrintService, AttributeUpdater, ...@@ -917,8 +901,10 @@ public class UnixPrintService implements PrintService, AttributeUpdater,
} }
} }
else if (attr.getCategory() == Copies.class) { else if (attr.getCategory() == Copies.class) {
return return (flavor == null ||
(flavor == null || isServiceFormattedFlavor(flavor)) && !(flavor.equals(DocFlavor.INPUT_STREAM.POSTSCRIPT) ||
flavor.equals(DocFlavor.URL.POSTSCRIPT) ||
flavor.equals(DocFlavor.BYTE_ARRAY.POSTSCRIPT))) &&
isSupportedCopies((Copies)attr); isSupportedCopies((Copies)attr);
} else if (attr.getCategory() == Destination.class) { } else if (attr.getCategory() == Destination.class) {
URI uri = ((Destination)attr).getURI(); URI uri = ((Destination)attr).getURI();
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
/** /**
* @test * @test
* @bug 6527316 * @bug 6527316 6732647
* @summary Copies isn't supported for PS flavors. * @summary Copies isn't supported for PS flavors.
* @run main PSCopiesFlavorTest * @run main PSCopiesFlavorTest
*/ */
...@@ -50,5 +50,13 @@ public class PSCopiesFlavorTest { ...@@ -50,5 +50,13 @@ public class PSCopiesFlavorTest {
if (suppVal || us == null) { if (suppVal || us == null) {
throw new RuntimeException("Copies should be unsupported value"); throw new RuntimeException("Copies should be unsupported value");
} }
Object value = ps.getSupportedAttributeValues(Copies.class, flavor, null);
//Copies Supported
if(value instanceof CopiesSupported) {
throw new RuntimeException("Copies should have no supported values.");
}
} }
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册