Package com.iizix.prop
Class Atom
- java.lang.Object
- com.iizix.prop.Atom
- All Implemented Interfaces:
java.lang.Cloneable
,java.lang.Comparable<Atom>
- Direct Known Subclasses:
GeneratedAtom
public class Atom extends java.lang.Object implements java.lang.Cloneable, java.lang.Comparable<Atom>
TheAtom
object instance is used to access the name string for e.g. properties. A name string that has been placed in an atom table is called an atom name.The name string is subject to the following name string rules:
- cannot be empty,
- code point for each character must be space or greater, i.e. no control characters,
- reserved characters: single- and double-quote, colon (:), forward and backslash (/\), curly brackets ({}) used in expressions, wild card characters (?*^), enumeration separators (,;).
The string itself is implemented as a weak reference, enabling the editor to keep a weak hash map with weak references.
- Author:
- Christopher Mindus
Field Summary
Constructor Summary
Constructors Modifier Constructor Description protected
Atom(java.lang.String name, int internalValue)
This method is ONLY intended to be used by GAtom!
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Atom
clone()
Clones this atom.int
compareTo(Atom atom)
Compares this object with the specified object for order.static java.lang.String
createValidName(java.lang.String string, boolean isLeadingDollarAllowed)
Creates a valid name from a string.boolean
equals(java.lang.Object atom)
Checks if an atom equals to another.static Atom
find(java.lang.String name)
Finds an atom that has been created previously by name, and that is still in use by some non-garbage-collected object.static Atom
get(java.lang.String name)
Gets an existing or creates a new atom with the specified name.java.lang.String
getAtomName()
Gets the atom name.int
hashCode()
Gets the hash code of the Atom, i.e.static boolean
isInside(Atom atom, Atom[] atoms)
Checks if an Atom is present in an array of Atoms.static boolean
isValidName(java.lang.String name)
Validates the atom name (apart of the leading '$' sign that should not be used unless for system defines).static boolean
isValidName(java.lang.String name, boolean allowLeadingDollar)
Validates the atom name.java.lang.String
toString()
Converts the atom to a string in the format ofatom[name]
.static java.lang.String
validateName(java.lang.String name)
Validates the atom name (apart of the leading '$' sign that should not be used unless for system defines).static java.lang.String
validateName(java.lang.String name, boolean allowLeadingDollar)
Validates the atom name (apart of the leading '$' sign that should not be used unless for system defines).
Field Detail
RESERVED_CHARS
public static final java.lang.String RESERVED_CHARS
Reserved characters in Atom names.- See Also:
- Constant Field Values
SYSTEM
public static final Atom SYSTEM
SERVER
public static final Atom SERVER
CLIENT
public static final Atom CLIENT
EVENT
public static final Atom EVENT
ENV
public static final Atom ENV
HEADER
public static final Atom HEADER
ERROR
public static final Atom ERROR
INDEX
public static final Atom INDEX
APPS
public static final Atom APPS
FILENAME
public static final Atom FILENAME
ROOT
public static final Atom ROOT
ICON
public static final Atom ICON
BINDINGS
public static final Atom BINDINGS
PORT
public static final Atom PORT
BIND
public static final Atom BIND
RESOLVE
public static final Atom RESOLVE
HOST
public static final Atom HOST
SSL
public static final Atom SSL
PROXYHOST
public static final Atom PROXYHOST
PROXYPORT
public static final Atom PROXYPORT
PROXYTYPE
public static final Atom PROXYTYPE
WEBSOCKET
public static final Atom WEBSOCKET
USER
public static final Atom USER
EXTENDS
public static final Atom EXTENDS
STYLES
public static final Atom STYLES
CLIENT_STYLES
public static final Atom CLIENT_STYLES
SETTINGS
public static final Atom SETTINGS
ROWS
public static final Atom ROWS
RAW
public static final Atom RAW
NULL
public static final Atom NULL
ACTORS
public static final Atom ACTORS
PATTERN
public static final Atom PATTERN
FOCUS
public static final Atom FOCUS
TRANSACTION
public static final Atom TRANSACTION
CONNECTORS
public static final Atom CONNECTORS
TYPE
public static final Atom TYPE
COMPONENTS
public static final Atom COMPONENTS
COMPONENT
public static final Atom COMPONENT
UI_CONTAINER
public static final Atom UI_CONTAINER
UI_COMPONENT
public static final Atom UI_COMPONENT
UI_PREVIEW
public static final Atom UI_PREVIEW
VISIBLE
public static final Atom VISIBLE
ENABLED
public static final Atom ENABLED
READONLY
public static final Atom READONLY
SELECTED
public static final Atom SELECTED
SELECTOR
public static final Atom SELECTOR
LAYOUT
public static final Atom LAYOUT
LAYOUT_MANAGER
public static final Atom LAYOUT_MANAGER
TEXT
public static final Atom TEXT
CHARUPDATE
public static final Atom CHARUPDATE
DATA_CONTAINER
public static final Atom DATA_CONTAINER
PANEL
public static final Atom PANEL
HSCROLL
public static final Atom HSCROLL
VSCROLL
public static final Atom VSCROLL
TITLE
public static final Atom TITLE
TOOLTIP
public static final Atom TOOLTIP
MESSAGE
public static final Atom MESSAGE
TOASTER
public static final Atom TOASTER
BADGE
public static final Atom BADGE
POPUP
public static final Atom POPUP
PLUGINS
public static final Atom PLUGINS
CLASS
public static final Atom CLASS
INPUT
public static final Atom INPUT
BODY
public static final Atom BODY
OUTPUT
public static final Atom OUTPUT
JAVA
public static final Atom JAVA
TIMESTAMP
public static final Atom TIMESTAMP
WIDTH
public static final Atom WIDTH
HEIGHT
public static final Atom HEIGHT
FIELDS
public static final Atom FIELDS
CID
public static final Atom CID
ID
public static final Atom ID
IDS
public static final Atom IDS
ACTION
public static final Atom ACTION
ACTIONS
public static final Atom ACTIONS
ALIGN
public static final Atom ALIGN
RTL
public static final Atom RTL
LOCATION
public static final Atom LOCATION
DELAY
public static final Atom DELAY
DERIVES
public static final Atom DERIVES
VSFIELD
public static final Atom VSFIELD
VSTABLE
public static final Atom VSTABLE
VSCOLUMN
public static final Atom VSCOLUMN
QNAME
public static final Atom QNAME
NAME
public static final Atom NAME
ENCODING
public static final Atom ENCODING
REFERENCE
public static final Atom REFERENCE
VIRTUALSPACE
public static final Atom VIRTUALSPACE
PARTICIPANTS
public static final Atom PARTICIPANTS
PRIMARY
public static final Atom PRIMARY
VALUE
public static final Atom VALUE
MSG
public static final Atom MSG
MCAT
public static final Atom MCAT
DESCR
public static final Atom DESCR
DEFAULT
public static final Atom DEFAULT
GEO
public static final Atom GEO
ZONES
public static final Atom ZONES
LANG
public static final Atom LANG
THEMES
public static final Atom THEMES
DEVICE
public static final Atom DEVICE
URI
public static final Atom URI
URI_PARAMS
public static final Atom URI_PARAMS
METHOD
public static final Atom METHOD
OVERRIDE_METHOD
public static final Atom OVERRIDE_METHOD
READ_TIMEOUT
public static final Atom READ_TIMEOUT
IGNORE
public static final Atom IGNORE
DOC
public static final Atom DOC
CACHE
public static final Atom CACHE
STYLE
public static final Atom STYLE
WEIGHT
public static final Atom WEIGHT
RANGE
public static final Atom RANGE
CONTEXT_MENU
public static final Atom CONTEXT_MENU
CONTEXT_MENU_REF
public static final Atom CONTEXT_MENU_REF
DESIGNER
public static final Atom DESIGNER
MODULE_APP
public static final Atom MODULE_APP
PWA
public static final Atom PWA
PUSH
public static final Atom PUSH
ON_VS_CREATE
public static final java.lang.String ON_VS_CREATE
- See Also:
- Constant Field Values
ON_VS_DESTROY
public static final java.lang.String ON_VS_DESTROY
- See Also:
- Constant Field Values
ON_VS_ACTION
public static final java.lang.String ON_VS_ACTION
- See Also:
- Constant Field Values
ON_VS_CHANGE
public static final java.lang.String ON_VS_CHANGE
- See Also:
- Constant Field Values
ON_VS_FOCUS
public static final java.lang.String ON_VS_FOCUS
- See Also:
- Constant Field Values
ON_VS_STATE
public static final java.lang.String ON_VS_STATE
- See Also:
- Constant Field Values
ON_UI_CONNECT
public static final java.lang.String ON_UI_CONNECT
- See Also:
- Constant Field Values
ON_UI_CREATE
public static final java.lang.String ON_UI_CREATE
- See Also:
- Constant Field Values
ON_UI_DESTROY
public static final java.lang.String ON_UI_DESTROY
- See Also:
- Constant Field Values
ON_UI_ACTION
public static final java.lang.String ON_UI_ACTION
- See Also:
- Constant Field Values
ON_UI_BACK
public static final java.lang.String ON_UI_BACK
- See Also:
- Constant Field Values
ON_UI_TEXT_CHANGE
public static final java.lang.String ON_UI_TEXT_CHANGE
- See Also:
- Constant Field Values
ON_UI_VALUE_CHANGE
public static final java.lang.String ON_UI_VALUE_CHANGE
- See Also:
- Constant Field Values
ON_UI_FOCUS
public static final java.lang.String ON_UI_FOCUS
- See Also:
- Constant Field Values
ON_UI_SELECTION
public static final java.lang.String ON_UI_SELECTION
- See Also:
- Constant Field Values
ATOM_ON_VS_CREATE
public static final Atom ATOM_ON_VS_CREATE
ATOM_ON_VS_DESTROY
public static final Atom ATOM_ON_VS_DESTROY
ATOM_ON_VS_ACTION
public static final Atom ATOM_ON_VS_ACTION
ATOM_ON_VS_CHANGE
public static final Atom ATOM_ON_VS_CHANGE
ATOM_ON_VS_FOCUS
public static final Atom ATOM_ON_VS_FOCUS
ATOM_ON_VS_STATE
public static final Atom ATOM_ON_VS_STATE
ATOM_ON_UI_CONNECT
public static final Atom ATOM_ON_UI_CONNECT
ATOM_ON_UI_CREATE
public static final Atom ATOM_ON_UI_CREATE
ATOM_ON_UI_DESTROY
public static final Atom ATOM_ON_UI_DESTROY
ATOM_ON_UI_ACTION
public static final Atom ATOM_ON_UI_ACTION
ATOM_ON_UI_BACK
public static final Atom ATOM_ON_UI_BACK
ATOM_ON_UI_TEXT_CHANGE
public static final Atom ATOM_ON_UI_TEXT_CHANGE
ATOM_ON_UI_VALUE_CHANGE
public static final Atom ATOM_ON_UI_VALUE_CHANGE
ATOM_ON_UI_FOCUS
public static final Atom ATOM_ON_UI_FOCUS
ATOM_ON_UI_SELECTION
public static final Atom ATOM_ON_UI_SELECTION
VSFIELD_NAME
public static final java.lang.String VSFIELD_NAME
- See Also:
- Constant Field Values
Method Detail
get
public static Atom get(java.lang.String name)
Gets an existing or creates a new atom with the specified name.- Parameters:
name
- The atom name, following the rules.- Throws:
java.lang.NullPointerException
- If the name is null.java.lang.IllegalArgumentException
- If the name is invalid.
find
public static Atom find(java.lang.String name)
Finds an atom that has been created previously by name, and that is still in use by some non-garbage-collected object.- Parameters:
name
- The name.- Returns:
- The Atom for the name, or null if not found.
isValidName
public static boolean isValidName(java.lang.String name)
Validates the atom name (apart of the leading '$' sign that should not be used unless for system defines).- Parameters:
name
- The atom name to verify.- Returns:
- true for success, false for invalid name.
isValidName
public static boolean isValidName(java.lang.String name, boolean allowLeadingDollar)
Validates the atom name.- Parameters:
name
- The atom name to verify.allowLeadingDollar
- Flag indicating leading dollar is allowed or not.- Returns:
- true for success, false for invalid name.
validateName
public static java.lang.String validateName(java.lang.String name)
Validates the atom name (apart of the leading '$' sign that should not be used unless for system defines).- Parameters:
name
- The atom name to verify.- Returns:
- The error message in English such as "cannot be empty" or "cannot contain...", or null for successful validation.
validateName
public static java.lang.String validateName(java.lang.String name, boolean allowLeadingDollar)
Validates the atom name (apart of the leading '$' sign that should not be used unless for system defines).- Parameters:
name
- The atom name to verify.allowLeadingDollar
- Flag indicating leading dollar is allowed or not.- Returns:
- The error message in English such as "cannot be empty" or "cannot contain...", or null for successful validation.
createValidName
public static java.lang.String createValidName(java.lang.String string, boolean isLeadingDollarAllowed)
Creates a valid name from a string. Only valid characters are used. If the name becomes empty, it will be returned as empty to be used for e.g. unique name creation, even if it is not allowed.- Parameters:
string
- The suggested name.isLeadingDollarAllowed
- Leading '$' is allowed depending on flag.
isInside
public static boolean isInside(Atom atom, Atom[] atoms)
Checks if an Atom is present in an array of Atoms.- Parameters:
atom
- The atom to find.atoms
- The atom array.- Returns:
- true if atom found in the atoms table.
equals
public boolean equals(java.lang.Object atom)
Checks if an atom equals to another.- Overrides:
equals
in classjava.lang.Object
- Parameters:
atom
- the atom to compare...- Returns:
- true if the atom is equal to this object instance by reference ("==").
compareTo
public int compareTo(Atom atom)
Compares this object with the specified object for order. Returns a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.- Specified by:
compareTo
in interfacejava.lang.Comparable<Atom>
- Parameters:
atom
- The object to be compared.- Returns:
- A negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object. The comparison is done with a Collator with the Default Locale.
- Throws:
java.lang.NullPointerException
- if the specified object is null.java.lang.ClassCastException
- if the specified object's type prevents it from being compared to this object.
getAtomName
public java.lang.String getAtomName()
Gets the atom name.- Returns:
- the name of the atom.
toString
public java.lang.String toString()
Converts the atom to a string in the format ofatom[name]
.- Overrides:
toString
in classjava.lang.Object
hashCode
public int hashCode()
Gets the hash code of the Atom, i.e. the hash code of the Atom Name.- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- the hash code of the Atom Name.
clone
public Atom clone()
Clones this atom.Atoms do not need cloning, and this method returns the same Atom object as the name is invariable.
- Overrides:
clone
in classjava.lang.Object
- Returns:
- A "clone" of the atom, i.e. the same "this" Atom object.