01: /*
02: * The contents of this file are subject to the terms of the Common Development
03: * and Distribution License (the License). You may not use this file except in
04: * compliance with the License.
05: *
06: * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
07: * or http://www.netbeans.org/cddl.txt.
08: *
09: * When distributing Covered Code, include this CDDL Header Notice in each file
10: * and include the License file at http://www.netbeans.org/cddl.txt.
11: * If applicable, add the following below the CDDL Header, with the fields
12: * enclosed by brackets [] replaced by your own identifying information:
13: * "Portions Copyrighted [year] [name of copyright owner]"
14: *
15: * The Original Software is NetBeans. The Initial Developer of the Original
16: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
17: * Microsystems, Inc. All Rights Reserved.
18: */
19:
20: package org.netbeans.modules.soa.mapper.common.basicmapper.literal;
21:
22: import org.netbeans.modules.soa.mapper.common.basicmapper.IBasicMapper;
23: import org.netbeans.modules.soa.mapper.common.basicmapper.methoid.IFieldNode;
24:
25: /**
26: * The real interaction with editors is placed into this type.
27: * The resulting value of the editor, when it closes, is
28: * available via this interface.
29: *
30: * @author Josh Sandusky
31: */
32: public interface ILiteralUpdater {
33:
34: /**
35: * Returns the literal editor associated with this updater.
36: */
37: public ILiteralEditor getEditor(IBasicMapper basicMapper,
38: IFieldNode field);
39:
40: /**
41: * Returns whether an editor is associated with this updater.
42: */
43: public boolean hasEditor();
44:
45: /**
46: * Called by the editor when the editor closes with
47: * a valid value. This method is not called if the
48: * user entered invalid data into the editor or
49: * cancelled the edit.
50: *
51: * @return the new value (possibly modified by literalSet)
52: */
53: public String literalSet(IFieldNode fieldNode, String newValue);
54:
55: /**
56: * Called when a field node with an in-place
57: * literal needs to remove the in-place literal.
58: */
59: public void literalUnset(IFieldNode fieldNode);
60:
61: /**
62: * Used by certain editors for determining what to do with
63: * text that the user may have entered.
64: */
65: public LiteralSubTypeInfo getLiteralSubType(String freeTextValue);
66:
67: /**
68: * Return the modified-version of the specified text that
69: * should be presented to the user. An example of this is
70: * where literalText may represent a string, but this string
71: * should be wrapped in double quotes before being displayed.
72: */
73: public String getLiteralDisplayText(String literalText);
74:
75: /**
76: * Used by certain editors for determining what to do with
77: * text that the user may have entered.
78: */
79: public class LiteralSubTypeInfo {
80: private String mValue;
81: private String mType;
82:
83: public LiteralSubTypeInfo(String type, String value) {
84: mType = type;
85: mValue = value;
86: }
87:
88: public String getValue() {
89: return mValue;
90: }
91:
92: public String getType() {
93: return mType;
94: }
95: }
96: }
|