[109429] CSS and DTD content describers do too much when asked for validity
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/ContentDescriberForCSS.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/ContentDescriberForCSS.java
index cb2f092..ea0655b 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/ContentDescriberForCSS.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/ContentDescriberForCSS.java
@@ -29,16 +29,26 @@
public int describe(InputStream contents, IContentDescription description) throws IOException {
int result = IContentDescriber.INDETERMINATE;
- calculateSupportedOptions(contents, description);
-
+ if (description == null) {
+ result = computeValidity(contents);
+ }
+ else {
+ calculateSupportedOptions(contents, description);
+ result = computeValidity(contents);
+ }
return result;
}
public int describe(Reader contents, IContentDescription description) throws IOException {
int result = IContentDescriber.INDETERMINATE;
- calculateSupportedOptions(contents, description);
-
+ if (description == null) {
+ result = computeValidity(contents);
+ }
+ else {
+ calculateSupportedOptions(contents, description);
+ result = computeValidity(contents);
+ }
return result;
}
@@ -68,6 +78,18 @@
}
}
+ private int computeValidity(InputStream inputStream) {
+ // currently no specific check for validilty
+ // based on contents.
+ return IContentDescriber.INDETERMINATE;
+ }
+
+ private int computeValidity(Reader reader) {
+ // currently no specific check for validilty
+ // based on contents.
+ return IContentDescriber.INDETERMINATE;
+ }
+
private IResourceCharsetDetector getDetector() {
return new CSSResourceEncodingDetector();
}
@@ -83,7 +105,7 @@
// mulitiple times (one for each, say) that we don't waste time
// processing same
// content again.
- EncodingMemento encodingMemento = ((CSSResourceEncodingDetector)detector).getEncodingMemento();
+ EncodingMemento encodingMemento = ((CSSResourceEncodingDetector) detector).getEncodingMemento();
// TODO: I need to verify to see if this BOM work is always done
// by text type.
Object detectedByteOrderMark = encodingMemento.getUnicodeBOM();
@@ -175,5 +197,4 @@
// result = true;
return result;
}
-
}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/content/ContentDescriberForDTD.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/content/ContentDescriberForDTD.java
index c245829..0fad934 100644
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/content/ContentDescriberForDTD.java
+++ b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/content/ContentDescriberForDTD.java
@@ -34,16 +34,26 @@
public int describe(InputStream contents, IContentDescription description) throws IOException {
int result = IContentDescriber.INDETERMINATE;
- calculateSupportedOptions(contents, description);
-
+ if (description == null) {
+ result = computeValidity(contents);
+ }
+ else {
+ calculateSupportedOptions(contents, description);
+ result = computeValidity(contents);
+ }
return result;
}
public int describe(Reader contents, IContentDescription description) throws IOException {
int result = IContentDescriber.INDETERMINATE;
- calculateSupportedOptions(contents, description);
-
+ if (description == null) {
+ result = computeValidity(contents);
+ }
+ else {
+ calculateSupportedOptions(contents, description);
+ result = computeValidity(contents);
+ }
return result;
}
@@ -73,6 +83,18 @@
}
}
+ private int computeValidity(InputStream inputStream) {
+ // currently no specific check for validilty
+ // based on contents.
+ return IContentDescriber.INDETERMINATE;
+ }
+
+ private int computeValidity(Reader reader) {
+ // currently no specific check for validilty
+ // based on contents.
+ return IContentDescriber.INDETERMINATE;
+ }
+
// same rules as for XML
private IResourceCharsetDetector getDetector() {
if (resourceCharsetDetector == null) {
@@ -92,7 +114,7 @@
// mulitiple times (one for each, say) that we don't waste time
// processing same
// content again.
- EncodingMemento encodingMemento = ((XMLResourceEncodingDetector)detector).getEncodingMemento();
+ EncodingMemento encodingMemento = ((XMLResourceEncodingDetector) detector).getEncodingMemento();
// TODO: I need to verify to see if this BOM work is always done
// by text type.
Object detectedByteOrderMark = encodingMemento.getUnicodeBOM();
@@ -186,5 +208,4 @@
result = true;
return result;
}
-
}