Expresso 5-6

com.jcorporate.expresso.ext.dbobj
Class RestrictedCountries

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.RestrictedCountries
All Implemented Interfaces:
Cacheable, ContextNested, DataObject, LookupInterface, Securable, Serializable

public class RestrictedCountries
extends SecuredDBObject

Table for countries that are not permitted access to 'restricted' downloads

Usually this pertains to Cryptographic source code that cannot be downloaded from the U.S. to Cuba for example.

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
static String FLD_DOMAINID
           
static String FLD_RESTRICTID
           
protected static org.apache.oro.util.CacheLRU lookupCache
          Lookup Cache to prevent having to do reverse-name lookups all the time.
 
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
RestrictedCountries()
          Constructor
RestrictedCountries(DBConnection myConnection)
          Constructor
RestrictedCountries(int uid)
          Use over (String) constructor.
RestrictedCountries(RequestContext request)
          For using DBObjects within Controllers.
 
Method Summary
protected  Boolean getCachedLookup(String ipAddress)
          Threadsafe cache dealing... check to see if the ip address is already in the listing
 int getExpectedDefaultPopulation()
          Useful method for unit testing to make sure that everything got added during setup as expected.
 DBObject getThisDBObj()
          This will return a new object of the type of the subclass.
 boolean isRestricted(String ipAddress)
          Determines if the given IP adderss is a 'restricted' source. 127.0.0.1 is always considered unrestricted.
 void populateDefaultValues()
          This function populates the table with the current listing of ISO country codes
protected  void setCachedLookup(String ipAddress, Boolean newValue)
          Threadsafe cache dealing, sets the lookup ip address as the key, and the lookup results in the cache system.
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, getValidValueDescrip, getValidValues, getValidValuesList, getValues, 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_RESTRICTID

public static final String FLD_RESTRICTID
See Also:
Constant Field Values

FLD_DOMAINID

public static final String FLD_DOMAINID
See Also:
Constant Field Values

lookupCache

protected static org.apache.oro.util.CacheLRU lookupCache
Lookup Cache to prevent having to do reverse-name lookups all the time. for the same user

Constructor Detail

RestrictedCountries

public RestrictedCountries()
                    throws DBException
Constructor

Throws:
DBException - if there's an initialization problem

RestrictedCountries

public RestrictedCountries(DBConnection myConnection)
                    throws DBException
Constructor

Parameters:
myConnection - the DBConnection to assign to this DBObject
Throws:
DBException - if there's an initialization problem

RestrictedCountries

public RestrictedCountries(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

RestrictedCountries

public RestrictedCountries(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 o

getThisDBObj

public DBObject getThisDBObj()
                      throws DBException
Description copied from class: DBObject
This will return a new object of the type of the subclass.

OVERRIDE this method with implentation like

return new MyObject()

if you want greatest efficiency. For example: A DBObject called "Customer" should return a new "Customer" object.

the implementation in DBObject uses getClass().newInstance(), which seems to be about 50% slower than "new MyObject()" calls on JDK 1.4

Note that this method should never be called directly. It should only be called by newInstance()

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

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

isRestricted

public boolean isRestricted(String ipAddress)
                     throws DBException
Determines if the given IP adderss is a 'restricted' source. 127.0.0.1 is always considered unrestricted.

Parameters:
ipAddress - the ipaddress as a string
Returns:
true if this ip address maps to a domain that's listed in the restricted table.
Throws:
DBException - upon error

getCachedLookup

protected Boolean getCachedLookup(String ipAddress)
Threadsafe cache dealing... check to see if the ip address is already in the listing

Parameters:
ipAddress - the ipAddress to check for cached values.
Returns:
java.lang.Boolean

setCachedLookup

protected void setCachedLookup(String ipAddress,
                               Boolean newValue)
Threadsafe cache dealing, sets the lookup ip address as the key, and the lookup results in the cache system.

Parameters:
ipAddress - the ipAddress to check for cached values.
newValue - java.lang.Boolean result to cache.

Expresso 5-6

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