Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcsalter2005-05-20 05:08:27 +0000
committercsalter2005-05-20 05:08:27 +0000
commit984069fa2fb795e660ab2b1c75d35d5872a02e32 (patch)
tree3cd22c029b49ebbeb9922fe22b31a01ab53463d2 /bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst
parent2ccc1ce4e72cd59b1a90c293ce5a2d4c968a6c83 (diff)
downloadwebtools.sourceediting-984069fa2fb795e660ab2b1c75d35d5872a02e32.tar.gz
webtools.sourceediting-984069fa2fb795e660ab2b1c75d35d5872a02e32.tar.xz
webtools.sourceediting-984069fa2fb795e660ab2b1c75d35d5872a02e32.zip
[95998] add support for partial validation
Diffstat (limited to 'bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst')
-rw-r--r--bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/CMValidator.java9
-rw-r--r--bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/DOMValidator.java26
2 files changed, 32 insertions, 3 deletions
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/CMValidator.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/CMValidator.java
index 3fe490f988..923cb19afb 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/CMValidator.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/CMValidator.java
@@ -573,12 +573,14 @@ public class CMValidator
{
protected Vector elementOriginStack = new Vector();
protected CMNode[] originArray = null;
+ protected int partialValidationCount = 0;
public void push(Arc arc)
{
if (arc.kind == Arc.ELEMENT)
{
elementOriginStack.add(arc.cmNode);
+ partialValidationCount = Math.max(elementOriginStack.size(), partialValidationCount);
}
}
@@ -605,7 +607,12 @@ public class CMValidator
{
this.originArray = originArray;
}
- }
+
+ public int getPartialValidationCount()
+ {
+ return partialValidationCount;
+ }
+ }
/**
*
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/DOMValidator.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/DOMValidator.java
index debdef8270..e26e359daf 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/DOMValidator.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/DOMValidator.java
@@ -307,7 +307,8 @@ public class DOMValidator extends CMValidator
{
List clonedList = clone(contentSpecificationList);
insert(clonedList, insertIndex, cmNode);
- return isValid(ed, clonedList);
+ boolean result = isPartiallyValid(ed, clonedList);
+ return result;
}
/**
@@ -358,7 +359,28 @@ public class DOMValidator extends CMValidator
validate(ed, contentSpecificationList, stringContentComparitor, result);
return result.isValid;
}
-
+
+ public boolean isPartiallyValid(CMElementDeclaration ed, List contentSpecificationList)
+ {
+ CMValidator.ElementPathRecordingResult result = new CMValidator.ElementPathRecordingResult();
+ validate(ed, contentSpecificationList, stringContentComparitor, result);
+ int count = getElementCount(contentSpecificationList);
+ System.out.println("elementOriginList " + result.getPartialValidationCount() + "vs" + count);
+ return result.getPartialValidationCount() >= count;
+ }
+
+ public int getElementCount(List contentSpecificationList)
+ {
+ int count = 0;
+ for (Iterator i = contentSpecificationList.iterator(); i.hasNext(); )
+ {
+ if (stringContentComparitor.isElement(i.next()))
+ {
+ count++;
+ }
+ }
+ return count;
+ }
protected Result validate(CMElementDeclaration ed, Element element)
{

Back to the top