Expresso 5-6

com.jcorporate.expresso.ext.dbobj
Class ISOCountryCodes

java.lang.Object
  extended bycom.jcorporate.expresso.core.dataobjects.BaseDataObject
      extended bycom.jcorporate.expresso.core.dataobjects.jdbc.JDBCDataObject
          extended bycom.jcorporate.expresso.core.dbobj.DBObject
              extended bycom.jcorporate.expresso.core.dbobj.SecuredDBObject
                  extended bycom.jcorporate.expresso.ext.dbobj.ISOCountryCodes
All Implemented Interfaces:
Cacheable, ContextNested, DataObject, LookupInterface, Securable, Serializable
Direct Known Subclasses:
ReverseLookupDomains

public class ISOCountryCodes
extends SecuredDBObject

This database table contains a list of all known ISO 3166-1 country codes. See www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/index.html for the source of this data.

This is highly useful for registration data. Allow a person to choose from a dropdown box. Also can check postal code against known regular expressions depending on the iso country code associated with the registration.

Since:
Expresso 5.0
Author:
Michael Rimov
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class com.jcorporate.expresso.core.dbobj.DBObject
DBObject.FieldError, DBObject.FieldUpdate
 
Field Summary
protected static org.apache.oro.text.regex.PatternCompiler compiler
          Used for regular expression compilation
protected static Object countryCodeLock
           
protected static Reference countryCodes
           
static String FLD_COUNTRY
           
static String FLD_ISOCODE
           
static String FLD_POSTALREGEXP
           
protected static org.apache.oro.text.regex.PatternMatcher matcher
          Used to match compiled patterns against strings
protected static org.apache.oro.util.Cache regExpCache
          Used to hold compiled regular expressions in an attempt to speed up pattern matching.
static String TABLE
           
 
Fields inherited from class com.jcorporate.expresso.core.dbobj.SecuredDBObject
ADD, ALL_FUNCTIONS, CACHE_NAME, CACHE_TTY, DELETE, SEARCH, SYSTEM_ACCOUNT, SYSTEM_ACCOUNT_NAME, UPDATE
 
Fields inherited from class com.jcorporate.expresso.core.dbobj.DBObject
ATTRIBUTE_ERROR, ATTRIBUTE_ERROR_MESSAGE, ATTRIBUTE_PAGE_LIMIT, BIG_DECIMAL_ZERO, EMAIL_MASK, EVENT_ADD, EVENT_DELETE, EVENT_UPDATE, FLOAT_MASK, INT_MASK, IS_CHECK_RELATIONAL_INTEGRITY, UPDATE_CHANGED_ONLY, WHERE_KEYWORD
 
Fields inherited from class com.jcorporate.expresso.core.dataobjects.jdbc.JDBCDataObject
anyFieldsDistinct, anyFieldsToRetrieve, appendCustomWhere, caseSensitiveQuery, customWhereClause, dbKey, distinctFields, localConnection, LONGBINARY_READ_DEFAULT_SIZE, maxRecords, myClassName, myUpdates, offsetRecord, recordSet, retrieveFields, sMetadataMap, sortKeys
 
Fields inherited from class com.jcorporate.expresso.core.dataobjects.BaseDataObject
currentStatus, globalMask
 
Fields inherited from interface com.jcorporate.expresso.core.dataobjects.DataObject
STATUS_CURRENT, STATUS_DELETED, STATUS_NEW, STATUS_UPDATED
 
Constructor Summary
ISOCountryCodes()
          Constructor
ISOCountryCodes(DBConnection myConnection)
          Constructor
ISOCountryCodes(int uid)
          Use over (String) constructor.
ISOCountryCodes(RequestContext request)
          For using DBObjects within Controllers.
 
Method Summary
 boolean checkPostalCode(String testPostalCode)
          Checks a postal code for proper formatting The iso country definition should already have been retrieved.
protected static String[][] getCountryCodes()
           
 int getExpectedDefaultPopulation()
          Useful method for unit testing to make sure that everything got added during setup as expected.
 Vector getValues()
          Method to return a Vector of ValidValue Template method--not implemented in this superclass.
 void populateDefaultValues()
          This function populates the table with the current listing of ISO country codes
protected  void setupFields()
          Method to set up the fields for this database object.
 
Methods inherited from class com.jcorporate.expresso.core.dbobj.SecuredDBObject
add, canRequesterAdd, canRequesterDelete, canRequesterRead, canRequesterUpdate, checkAllowed, copyAttributes, count, createSecurityCache, delete, deleteAll, find, getRequestingUid, getString, getString, getString, getString, getString, getString, getSystemUid, instantiate, isAllowed, retrieve, search, searchAndRetrieveList, searchAndRetrieveList, setRequestingUid, update
 
Methods inherited from class com.jcorporate.expresso.core.dbobj.DBObject
addDetail, addField, addField, addFieldError, addFoundKeys, addIfNeeded, addIndex, addKey, addOrUpdate, addSortKey, addTransition, addVirtualField, addVirtualField, addVirtualField, addVirtualField, average, basicAdd, cacheIsChangedComparison, checkAllReferredToBy, checkAllRefs, checkAllRefsPublic, checkDeleteDetailPerm, checkField, checkRef, checkRef, clear, clearDistinctFields, clearError, clearFieldsToRetrieve, clearSortKeys, containsWildCards, delete, deleteAll, deleteDetails, denotesRange, equals, forKey, formatDateTime, get, getAllAttributes, getAttribute, getAttributesIterator, getBooleanFieldValue, getCacheSize, getCacheStatsMap, getCacheUtil, getCheckZeroUpdate, getCustomWhereClause, getDataContext, getDataField, getDataTransferObject, getDBName, getDetails, getDistinctFieldCount, getDistinctFields, getField, getFieldBigDecimal, getFieldBoolean, getFieldByte, getFieldByteArray, getFieldData, getFieldDate, getFieldDecimalFormatted, getFieldDouble, getFieldErrorMessage, getFieldFloat, getFieldInt, getFieldLong, getFieldMetaData, getFieldShort, getFieldsToRetrieveCount, getFilterClass, getFoundCount, getFoundKeysArray, getIndexArray, getISOValuesDefault, getISOValuesDefault, getISOValuesDefault, getKey, getKeyFieldListIterator, getLength, getLengthInt, getLocalConnection, getLocale, getLogger, getLookupObject, getMax, getMax, getMaxRecords, getMyKeys, getMyUpdatesArray, getOffsetRecord, getPatternMatcher, getPrecision, getSerializedForm, getStringFilter, getThisDBbj, getThisDBObj, getValidValueDescrip, getValidValues, getValidValuesList, getValuesDefault, getValuesDefault, getValuesDefault, hasError, hasErrors, haveAllKeys, initialize, isCached, isChanged, isDistinct, isEmpty, isFieldDistinct, isFieldNull, isFieldsToRetrieve, isFieldToRetrieve, isMultiValued, isReadOnly, isSecret, isVirtual, loadFromConnection, logChange, max, min, newInstance, noNewLine, noQuotes, notifyListeners, referredToBy, removeAttribute, removeFromCache, retrieveFromCache, saveBinaryField, search, set, setAttribute, setCacheSize, setCharset, setCheckZeroUpdate, setConnection, setConnection, setCustomWhereClause, setCustomWhereClause, setDataContext, setDataField, setDataTransferObject, setDefaultValue, setDescription, setField, setField, setField, setField, setField, setField, setField, setField, setField, setField, setFieldData, setFieldData, setFieldDistinct, setFieldsToRetrieve, setFilterClass, setFilterClass, setKeys, setLocale, setLookupField, setLookupObject, setMask, setMaxRecords, setMultiValued, setName, setOffsetRecord, setReadOnly, setSchema, setSecret, setSortKey, setStringFilter, setStringFiltersOnAll, setTargetDbSchema, setTargetTable, sqlAggrFunction, sum, toDebugString, update, updateAll, updateAll, verify
 
Methods inherited from class com.jcorporate.expresso.core.dataobjects.jdbc.JDBCDataObject
addInParam, addOutParam, buildWhereClause, buildWhereClauseBuffer, checkZeroUpdate, constructNewMetaData, createAndExecuteSearch, createAndRunStoreProcedure, getConnectionPool, getCustomStringFieldValue, getDef, getDistinctFieldArrayList, getExecutor, getFieldsToRetrieveIterator, getJDBCMetaData, getJDBCUtil, getMappedDataContext, getMetaData, getQueryInterface, getSerialForm, loadFromConnection, makeLimitationStub, quoteIfNeeded, runStoredProcedure, runStoredProcedureAndRetrieveList, selectFieldString, setCaseSensitiveQuery, setDBConnectionPool, setDBName, setMappedDataContext, setOriginalDBName, setTargetStoreProcedure
 
Methods inherited from class com.jcorporate.expresso.core.dataobjects.BaseDataObject
getGlobalMask, getStatus, isGlobalMasked, setFieldsWithDefaults, setGlobalMask, setStatus
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FLD_ISOCODE

public static final String FLD_ISOCODE
See Also:
Constant Field Values

FLD_COUNTRY

public static final String FLD_COUNTRY
See Also:
Constant Field Values

FLD_POSTALREGEXP

public static final String FLD_POSTALREGEXP
See Also:
Constant Field Values

TABLE

public static final String TABLE
See Also:
Constant Field Values

regExpCache

protected static org.apache.oro.util.Cache regExpCache
Used to hold compiled regular expressions in an attempt to speed up pattern matching.


compiler

protected static org.apache.oro.text.regex.PatternCompiler compiler
Used for regular expression compilation


matcher

protected static org.apache.oro.text.regex.PatternMatcher matcher
Used to match compiled patterns against strings


countryCodes

protected static Reference countryCodes

countryCodeLock

protected static Object countryCodeLock
Constructor Detail

ISOCountryCodes

public ISOCountryCodes()
                throws DBException
Constructor


ISOCountryCodes

public ISOCountryCodes(DBConnection myConnection)
                throws DBException
Constructor

Parameters:
myConnection - The DBConnection to use Locally

ISOCountryCodes

public ISOCountryCodes(int uid)
                throws DBException
Use over (String) constructor. Initializes the object in the context of the user who's uid belongs to the parameter.

Parameters:
uid - the Uid of the user context
Throws:
DBException - if there's an initialization problem

ISOCountryCodes

public ISOCountryCodes(RequestContext request)
                throws DBException
For using DBObjects within Controllers. Initializes based upon the current user and the requested db. [Of course this can be modified later]

Parameters:
request - - The controller request handed to you by the framework.
Throws:
DBException - if there's an initialization problem
Method Detail

populateDefaultValues

public void populateDefaultValues()
                           throws DBException
This function populates the table with the current listing of ISO country codes

Overrides:
populateDefaultValues in class DBObject
Throws:
DBException - if an error occurs while populating the table.
See Also:
DBObject.populateDefaultValues()

getExpectedDefaultPopulation

public int getExpectedDefaultPopulation()
Useful method for unit testing to make sure that everything got added during setup as expected.

Returns:
the length of what's expected to be in the table

getValues

public Vector getValues()
                 throws DBException
Description copied from class: DBObject
Method to return a Vector of ValidValue Template method--not implemented in this superclass. This method may be implemented by objects that want to provide a list of valid values for other DB objects. It is strongly recommended that the valid value list be cached (via the CacheManager) for performance. The naming convention used in Expresso is to store the ValidValue list with a cache name the same as the db objects class name with ".validValues" appended TODO: This should be converted to array List versions

Specified by:
getValues in interface LookupInterface
Overrides:
getValues in class DBObject
Returns:
Vector of ValidValue Value/Description pairs for ISO Country Codes
Throws:
DBException - If the values cannot be retrieved
See Also:
DBObject.getValidValues(java.lang.String)

checkPostalCode

public boolean checkPostalCode(String testPostalCode)
                        throws DBException
Checks a postal code for proper formatting The iso country definition should already have been retrieved.

Parameters:
testPostalCode - the postalCode to check
Returns:
true if the postal code existed for this country
Throws:
DBException - if the test code didn't match the regular expression stored in the database OR if the regular expression in the database is syntactically invalid

setupFields

protected void setupFields()
                    throws DBException
Description copied from class: DBObject
Method to set up the fields for this database object. This method should be defined in the implementing object and should make calls to addField, addKey, setMultiValued, etc. as required to define the content of the DBObject. Each setupFields method should call "super.setupFields()" so that field definitions can be "inheritcable"

Overrides:
setupFields in class DBObject
Throws:
DBException

getCountryCodes

protected static String[][] getCountryCodes()

Expresso 5-6

Please see www.jcorporate.com for information about new Expresso releases.