Skip to content

Commit

Permalink
Cleanup
Browse files Browse the repository at this point in the history
git-svn-id: https://svn.apache.org/repos/asf/cocoon/trunk/blocks/cocoon-forms@416663 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information
cziegeler committed Jun 23, 2006
1 parent 6ccef67 commit 4457ff4
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 40 deletions.
Expand Up @@ -21,7 +21,6 @@

import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.cocoon.forms.binding.library.Library;
import org.apache.cocoon.forms.formmodel.Form;
import org.apache.cocoon.forms.formmodel.Widget;
import org.apache.cocoon.util.jxpath.DOMFactory;
import org.apache.commons.jxpath.JXPathContext;
Expand Down
Expand Up @@ -17,11 +17,11 @@

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

import org.apache.avalon.framework.CascadingRuntimeException;
import org.apache.cocoon.matching.helpers.WildcardHelper;
import org.apache.cocoon.util.WildcardMatcherHelper;
import org.apache.excalibur.source.SourceException;
import org.apache.excalibur.source.SourceResolver;
import org.apache.excalibur.source.TraversableSource;
Expand All @@ -35,10 +35,10 @@ public class SourceTreeModel implements TreeModel {

private TreeModelHelper helper = new TreeModelHelper(this);

private int[][] fileIncludePatterns = SourceTreeModelDefinition.NO_PATTERNS;
private int[][] fileExcludePatterns = SourceTreeModelDefinition.NO_PATTERNS;
private int[][] dirIncludePatterns = SourceTreeModelDefinition.NO_PATTERNS;
private int[][] dirExcludePatterns = SourceTreeModelDefinition.NO_PATTERNS;
private List fileIncludePatterns;
private List fileExcludePatterns;
private List dirIncludePatterns;
private List dirExcludePatterns;

/** optimization hint: don't filter child collections if there are no patterns */
private boolean hasPatterns = false;
Expand Down Expand Up @@ -116,29 +116,25 @@ private Collection filterChildren(Collection coll) {
return result;
}

private boolean matches(TraversableSource src, int[][]include, int[][]exclude) {
private boolean matches(TraversableSource src, List includes, List excludes) {
boolean matches = true;
String name = src.getName();

//FIXME: match allowed a null Map very recently. Replace it by null once 2.1.8 is out,
// we will gain a few cycles.
HashMap junk = new HashMap();
final String name = src.getName();

// check include patterns
if (include != null && include.length > 0) {
if (includes != null && includes.size() > 0) {
matches = false;
check: for (int i = 0; i < include.length; i++) {
if (WildcardHelper.match(junk, name, include[i])) {
check: for (int i = 0; i < includes.size(); i++) {
if (WildcardMatcherHelper.match((String)includes.get(i), name) != null) {
matches = true;
break check;
}
}
}

// check exclude patterns
if (matches && exclude != null && exclude.length > 0) {
check: for (int i = 0; i < exclude.length; i++) {
if (WildcardHelper.match(junk, name, exclude[i])) {
if (matches && excludes != null && excludes.size() > 0) {
check: for (int i = 0; i < excludes.size(); i++) {
if (WildcardMatcherHelper.match((String)excludes.get(i), name) != null) {
matches = false;
break check;
}
Expand Down
Expand Up @@ -15,6 +15,8 @@
*/
package org.apache.cocoon.forms.formmodel.tree;

import java.util.List;

import org.apache.excalibur.source.SourceResolver;

/**
Expand All @@ -24,45 +26,44 @@
*/
public class SourceTreeModelDefinition implements TreeModelDefinition {

public static final int[][] NO_PATTERNS = new int[0][];
private String url;
private int[][] fileIncludePatterns = NO_PATTERNS;
private int[][] fileExcludePatterns = NO_PATTERNS;
private int[][] dirIncludePatterns = NO_PATTERNS;
private int[][] dirExcludePatterns = NO_PATTERNS;
private List fileIncludePatterns;
private List fileExcludePatterns;
private List dirIncludePatterns;
private List dirExcludePatterns;
private SourceResolver resolver;

public void setURL(String url) {
this.url = url;
}

public void setFilePatterns(int[][] include, int[][] exclude) {
this.fileIncludePatterns = include;
this.fileExcludePatterns = exclude;
public void setFilePatterns(List includes, List excludes) {
this.fileIncludePatterns = includes;
this.fileExcludePatterns = excludes;
}

public void setDirectoryPatterns(int[][] include, int[][] exclude) {
this.dirIncludePatterns = include;
this.dirExcludePatterns = exclude;
public void setDirectoryPatterns(List includes, List excludes) {
this.dirIncludePatterns = includes;
this.dirExcludePatterns = excludes;
}

public TreeModel createInstance() {
return new SourceTreeModel(this);
}

public int[][] getDirectoryExcludePatterns() {
public List getDirectoryExcludePatterns() {
return dirExcludePatterns;
}

public int[][] getDirectoryIncludePatterns() {
public List getDirectoryIncludePatterns() {
return dirIncludePatterns;
}

public int[][] getFileExcludePatterns() {
public List getFileExcludePatterns() {
return fileExcludePatterns;
}

public int[][] getFileIncludePatterns() {
public List getFileIncludePatterns() {
return fileIncludePatterns;
}

Expand Down
Expand Up @@ -15,6 +15,9 @@
*/
package org.apache.cocoon.forms.formmodel.tree.builder;

import java.util.ArrayList;
import java.util.List;

import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
Expand All @@ -23,7 +26,6 @@
import org.apache.cocoon.forms.formmodel.tree.SourceTreeModelDefinition;
import org.apache.cocoon.forms.formmodel.tree.TreeModelDefinition;
import org.apache.cocoon.forms.util.DomHelper;
import org.apache.cocoon.matching.helpers.WildcardHelper;
import org.apache.excalibur.source.SourceResolver;
import org.w3c.dom.Element;

Expand All @@ -37,12 +39,17 @@ public class SourceTreeModelDefinitionBuilder extends AbstractLogEnabled

private ServiceManager manager;

/**
* @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
*/
public void service(ServiceManager manager) throws ServiceException {
this.manager = manager;
}

/**
* @see org.apache.cocoon.forms.formmodel.tree.builder.TreeModelDefinitionBuilder#build(org.w3c.dom.Element)
*/
public TreeModelDefinition build(Element modelElt) throws Exception {

SourceTreeModelDefinition definition = new SourceTreeModelDefinition();

definition.setURL(DomHelper.getAttribute(modelElt, "src"));
Expand All @@ -64,17 +71,17 @@ public TreeModelDefinition build(Element modelElt) throws Exception {
return definition;
}

int[][] getPatterns(Element parent, String name) throws Exception {
protected List getPatterns(Element parent, String name) throws Exception {
Element[] children = DomHelper.getChildElements(parent, FormsConstants.DEFINITION_NS, name);

if (children.length == 0) {
return null;
}

int[][] result = new int[children.length][];
final List result = new ArrayList();
for (int i = 0; i < children.length; i++) {
String pattern = DomHelper.getAttribute(children[i], "pattern");
result[i] = WildcardHelper.compilePattern(pattern);
final String pattern = DomHelper.getAttribute(children[i], "pattern");
result.add(pattern);
}
return result;
}
Expand Down

0 comments on commit 4457ff4

Please sign in to comment.