01: /*
02: * Copyright 2001 Sun Microsystems, Inc. All rights reserved.
03: * PROPRIETARY/CONFIDENTIAL. Use of this product is subject to license terms.
04: */
05: package com.sun.portal.rewriter.rom.html;
06:
07: import com.sun.portal.rewriter.rom.Data;
08: import com.sun.portal.rewriter.rom.DataRule;
09: import com.sun.portal.rewriter.util.Debug;
10: import com.sun.portal.rewriter.util.re.Pattern;
11: import com.sun.portal.rewriter.util.xml.Node;
12:
13: /**
14: * Representation of Form tag of HTMLRules
15: *
16: * @version 1.0 12/15/2001
17: * @author Raja Nagendra Kumar, Nagendra.Raja@sun.com
18: */
19: public final class FormRule extends DataRule {
20: private final Form form;
21: private final Pattern[] nameSpec;
22: private final Pattern[] fieldSpec;
23: private final Pattern[] valuePatternSpec;
24:
25: public FormRule(final Form aForm) {
26: super (aForm);
27: form = aForm;
28: nameSpec = createAttributeSpec(form.getName(), true);
29: fieldSpec = createAttributeSpec(form.getField(), true);
30: valuePatternSpec = createValuePatternSpec(form
31: .getValuePatterns());
32: }//constructor
33:
34: public FormRule(final Node aNode) {
35: this (new Form(aNode.getAttributeValue(NAME), aNode
36: .getAttributeValue(FIELD), aNode
37: .getAttributeValue(VALUE_PATTERNS), aNode
38: .getAttributeValue(SOURCE)));
39: }//constructor
40:
41: public Pattern[] getParsedPatterns() {
42: return valuePatternSpec;
43: }//getParsedValuePatterns()
44:
45: public boolean plugableMatch(final Data aMache) {
46: if (!(aMache instanceof Form)) {
47: return false;
48: }
49:
50: Form valueObject = (Form) aMache;
51: if (match(nameSpec, valueObject.getName())) {
52: if (match(fieldSpec, valueObject.getField())) {
53: return true;
54: }
55: }
56:
57: return false;
58: }//matchs()
59:
60: public boolean isValid() {
61: return doBasicValidation(new String[] { form.getSource(),
62: form.getName(), form.getField() });
63: }//isValid()
64:
65: public static void main(String[] args) {
66: FormRule[] forms = com.sun.portal.rewriter.test.util.SampleRuleObjects.defaultHTMLForms;
67: for (int i = 0; i < forms.length; i++) {
68: Debug.println(forms[i].toXML());
69: }//for loop
70: }//main()
71: }//class Form
|