You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by si...@apache.org on 2008/07/17 05:06:45 UTC
svn commit: r677491 - in
/maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model:
ModelMarshaller.java ModelTransformerContext.java
Author: sisbell
Date: Wed Jul 16 20:06:45 2008
New Revision: 677491
URL: http://svn.apache.org/viewvc?rev=677491&view=rev
Log:
Better sort for orginal order of properties.
Modified:
maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java
maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java
Modified: maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java?rev=677491&r1=677490&r2=677491&view=diff
==============================================================================
--- maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java (original)
+++ maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java Wed Jul 16 20:06:45 2008
@@ -113,21 +113,29 @@
int n = 1;
for (ModelProperty mp : modelProperties) {
String uri = mp.getUri();
+ System.out.println(mp);
if (!uri.startsWith(baseUri)) {
throw new IllegalArgumentException("Passed in model property that does not match baseUri: Property URI = "
+ uri + ", Base URI = " + baseUri);
}
List<String> tagNames = getTagNamesFromUri(basePosition, uri);
+ // System.out.println(lastUriTags.size() + ":" + tagNames.size());
+ // String s = (lastUriTags.size() > 0) ? "LAST = " + lastUriTags.get(lastUriTags.size()-1) : "";
+ // String t = ((tagNames.size() > 0) ? ", CURRENT = " + tagNames.get(tagNames.size()-1) : ":");
+ // System.out.println(s + t);
if (lastUriTags.size() > tagNames.size()) {
for (int i = lastUriTags.size() - 1; i >= tagNames.size(); i--) {
+ // System.out.println("End tag without value: "+ toEndTag(lastUriTags.get(i - 1).trim()));
sb.append(toEndTag(lastUriTags.get(i - 1)));
}
}
String tag = tagNames.get(tagNames.size() - 1);
sb.append(toStartTag(tag));
+ // System.out.println(toStartTag(tag).trim());
if (mp.getResolvedValue() != null) {
sb.append(mp.getResolvedValue());
sb.append(toEndTag(tag));
+ // System.out.println("End tag with value: "+ tag.trim() + ", value = " + mp.getResolvedValue().trim());
n = 2;
} else {
n = 1;
@@ -135,13 +143,14 @@
lastUriTags = tagNames;
}
for (int i = lastUriTags.size() - n; i >= 1; i--) {
+ //System.out.println("END T = " + toEndTag(lastUriTags.get(i)) );
sb.append(toEndTag(lastUriTags.get(i)));
}
return sb.toString();
}
private static List<String> getTagNamesFromUri(int basePosition, String uri) {
- return Arrays.asList(uri.substring(basePosition).replace("#collection", "").split("/"));
+ return Arrays.asList(uri.substring(basePosition).replaceAll("#collection", "").split("/"));
}
private static String toStartTag(String value) {
Modified: maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java?rev=677491&r1=677490&r2=677491&view=diff
==============================================================================
--- maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java (original)
+++ maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java Wed Jul 16 20:06:45 2008
@@ -53,10 +53,10 @@
ModelTransformer toModelTransformer,
Collection<InterpolatorProperty> interpolatorProperties) throws IOException {
List<InterpolatorProperty> properties = new ArrayList<InterpolatorProperty>(interpolatorProperties);
+ List<ModelProperty> originalProperties = fromModelTransformer.transformToModelProperties(domainModels);
String baseUriForModel = fromModelTransformer.getBaseUri();
- List<ModelProperty> modelProperties = sort(fromModelTransformer.transformToModelProperties(domainModels),
- baseUriForModel);
+ List<ModelProperty> modelProperties = sort(originalProperties, baseUriForModel);
ModelDataSource modelDataSource = new DefaultModelDataSource();
modelDataSource.init(modelProperties, factories);
@@ -124,11 +124,8 @@
}
-
- mps = reverseSort(mps);
-
+ Collections.sort(mps, new ModelPropertyCompator(originalProperties));
try {
- validate(mps);
DomainModel domainModel = toModelTransformer.transformToDomainModel(mps);
domainModel.setEventHistory(modelDataSource.getEventHistory());
return domainModel;
@@ -155,7 +152,6 @@
return this.transform(domainModels, fromModelTransformer, toModelTransformer, systemInterpolatorProperties);
}
-
/**
* Sorts specified list of model properties. Typically the list contain property information from the entire
* hierarchy of models, with most specialized model first in the list.
@@ -192,51 +188,21 @@
return processedProperties;
}
- protected List<ModelProperty> reverseSort(List<ModelProperty> properties) {
- if (properties == null) {
- throw new IllegalArgumentException("properties");
- }
- LinkedList<ModelProperty> processedProperties = new LinkedList<ModelProperty>();
+ private class ModelPropertyCompator implements Comparator {
- int currentIndex = -1;
- String currentUri = "";
- for (ModelProperty p : properties) {
- String uri = p.getUri();
- String parentUri = uri.substring(0, uri.lastIndexOf("/"));
+ private List<ModelProperty> original;
- if (parentUri.endsWith("#collection")) {
- for (int j = processedProperties.size(); j >= 0; j--) {
- if (properties.get(j).getUri().equals(parentUri)) {
- currentIndex = j + 1;
- break;
- }
- }
- currentUri = p.getUri();
- processedProperties.add(currentIndex, p);
- } else if(p.getUri().startsWith(currentUri)){
- currentIndex++;
- processedProperties.add(currentIndex, p);
- } else {
- currentIndex++;
- processedProperties.add(p);
- }
+ public ModelPropertyCompator(List<ModelProperty> original) {
+ this.original = original;
}
- logger.info("Properties removed through reverse sort: " + (properties.size() - processedProperties.size()));
- return processedProperties;
- }
- private static void validate(List<ModelProperty> modelProperties) throws IOException {
- for (int i = 1; i < modelProperties.size(); i++) {
- ModelProperty previous = modelProperties.get(i - 1);
- ModelProperty current = modelProperties.get(i);
- if ((!previous.isParentOf(current) && current.getDepth() > previous.getDepth())
- || (current.getDepth() - previous.getDepth() > 1)) {
- int j = 0;
- for (ModelProperty mp : modelProperties) {
- System.out.println((j++) + ":" + mp);
- }
- throw new IOException("Invalid Model Property: Property " + current + ", Line = " + i);
+ public int compare(Object o1, Object o2) {
+ if(original.indexOf(o1) > original.indexOf(o2)) {
+ return 1;
+ } else {
+ return -1;
}
+
}
}
}