org.mmbase.module.builders
Class AbstractImages

java.lang.Object
  extended by org.mmbase.util.functions.FunctionProvider
      extended by org.mmbase.module.core.MMTable
          extended by org.mmbase.module.core.MMObjectBuilder
              extended by org.mmbase.module.builders.AbstractServletBuilder
                  extended by org.mmbase.module.builders.AbstractImages
All Implemented Interfaces:
EventListener, NodeEventListener, RelationEventListener, ImagesInterface
Direct Known Subclasses:
ImageCaches, Images

public abstract class AbstractImages
extends AbstractServletBuilder
implements ImagesInterface

AbstractImages holds the images and provides ways to insert, retrieve and search them.

Since:
MMBase-1.6
Version:
$Id: AbstractImages.java 38894 2009-09-28 17:00:29Z michiel $
Author:
Michiel Meeuwissen

Nested Class Summary
protected static class AbstractImages.CKeyCache
          Cache with 'ckey' keys.
 
Field Summary
static Parameter[] DIMENSION_PARAMETERS
           
static String FIELD_FILESIZE
           
static String FIELD_HEIGHT
           
static String FIELD_ITYPE
           
static String FIELD_WIDTH
           
protected static BlobCache handleCache
           
static Parameter[] HEIGHT_PARAMETERS
           
protected  Set<String> IMAGE_HANDLE_FIELDS
           
static Parameter[] WIDTH_PARAMETERS
           
 
Fields inherited from class org.mmbase.module.builders.AbstractServletBuilder
externalUrlField, FIELD_FILENAME, FIELD_HANDLE, FIELD_MIMETYPE, FORMAT_PARAMETERS, GUI_PARAMETERS, legalizeFileName, MIMETYPE_PARAMETERS, PROPERTY_EXTERNAL_URL_FIELD, usesBridgeServlet
 
Fields inherited from class org.mmbase.module.core.MMObjectBuilder
AGE_PARAMETERS, broadCastChanges, DEFAULT_ALINEA, DEFAULT_EOL, description, descriptions, EVENT_TYPE_LOCAL, EVENT_TYPE_REMOTE, FIELD_NUMBER, FIELD_OBJECT_TYPE, FIELD_OWNER, fields, genericBlobCache, getFunctions, GUI_INDICATOR, guiFunction, infoFunction, internalVersion, nodeCache, oType, pluralNames, searchAge, singularNames, SYSTEM_OWNER, TEMPNODE_DEFAULT_SIZE, TMP_FIELD_EXISTS, TMP_FIELD_NUMBER, virtual, WRAP_PARAMETERS, wrapFunction
 
Fields inherited from class org.mmbase.module.core.MMTable
maxNodesFromQuery, mmb, storageConnector, tableName
 
Fields inherited from class org.mmbase.util.functions.FunctionProvider
functions
 
Constructor Summary
AbstractImages()
           
 
Method Summary
protected  void checkHandle(MMObjectNode node)
          Tries to fill all fields which are dependend on the 'handle' field.
protected  Object executeFunction(MMObjectNode node, String function, List<?> args)
          Every image of course has a format and a mimetype.
protected  String getAssociation()
          This functions should return a string identifying where it is for.
protected  BlobCache getBlobCache(String fieldName)
          Returns
protected  String getDefaultImageType()
          The default image type is used when magic could not determin the type
protected  String getDefaultPath()
          If no servlet path can be found via the association (if the servlet did not 'associate' itself with something, like servdb), then the getServletPath function will fall back to this.
 Dimension getDimension(MMObjectNode node)
          Gets the dimension of given node.
protected  Dimension getDimensionForEmptyHandle(MMObjectNode node)
           
protected  int getFileSize(MMObjectNode node)
           
protected abstract  String getGUIIndicatorWithAlt(MMObjectNode node, String title, Parameters a)
          An image's gui-indicator is of course some <img src>, but it depends on what kind of image (cached, original) what excactly it must be.
protected  Set<String> getHandleFields()
          Returns the fields which tell something about the 'handle' field, and can be calculated from it.
 String getImageFormat(MMObjectNode node)
          Determines the image type of an object and stores the content in the itype field.
 String getMimeType(MMObjectNode node)
          Determine the MIME type of this image node, based on the image format.
protected  String getSGUIIndicator(MMObjectNode node, Parameters a)
          'Servlet' builders need a way to transform security to the servlet, in the gui functions, so they have to implement the 'SGUIIndicators'
protected  String getSGUIIndicatorForNode(MMObjectNode node, Parameters a)
          Returns GUI Indicator for node
protected  boolean handleEmpty(MMObjectNode node)
           
protected  boolean storesDimension()
          Whether this builders has width and height fields
protected  boolean storesFileSize()
          Whether this builders has a filesize field.
protected  boolean storesImageType()
          Whether this builders has a filesize field.
 
Methods inherited from class org.mmbase.module.builders.AbstractServletBuilder
addFileName, commit, getBinary, getDefaultFileName, getFileName, getGUIIndicator, getGUIIndicator, getServletPath, getServletPath, getSession, getSuperGUIIndicator, init, insert
 
Methods inherited from class org.mmbase.module.core.MMObjectBuilder
addEventListener, addField, addLocalObserver, addRemoteObserver, broadcastChanges, checkAddTmpField, clearBlobCache, create, createAlias, createAlias, delete, equals, equals, executeFunction, fieldLocalChanged, getAncestors, getClassName, getConfigFile, getConfigResource, getDataTypeCollector, getDBState, getDBType, getDefaultTeaser, getDefaultUrl, getDescendants, getDescription, getDescription, getDescriptions, getEmptyNode, getField, getFieldNames, getFields, getFields, getFunction, getFunctionParameters, getFunctions, getGUIIndicator, getHTML, getInitParameter, getInitParameters, getInitParameters, getInternalVersion, getList, getLocaleGUIIndicator, getLocaleGUIIndicator, getMachineName, getMaintainer, getNewNode, getNewTmpNode, getNextField, getNextField, getNode, getNode, getNode, getNodeFromCache, getNodeGUIIndicator, getNumber, getObjectType, getObjectValue, getParentBuilder, getPluralName, getPluralName, getPluralNames, getRelations_main, getSearchAge, getShort, getShortedByte, getShortedInputStream, getShortedText, getSingularName, getSingularName, getSingularNames, getSmartPath, getTmpNode, getURLEncode, getValue, getVersion, getWAP, getXMLPath, hasField, hashCode, hashCode, hostname_function, insert, isExtensionOf, isNodeCached, isNull, isVirtual, loadInitParameters, newFunctionInstance, nodeLocalChanged, nodeRemoteChanged, notify, notify, preCommit, process, removeEventListener, removeField, removeLocalObserver, removeNode, removeRelations, removeRemoteObserver, removeSyncNodes, replace, safeCache, sendFieldChangeSignal, setDefaults, setDescription, setDescriptions, setFields, setInitParameter, setMaintainer, setPluralNames, setSearchAge, setSingularNames, setUniqueValue, setUniqueValue, setValue, setValue, setVersion, setXMLPath, shutdown, testValidData, toString, toString, update, updateFields, wrap
 
Methods inherited from class org.mmbase.module.core.MMTable
count, count, created, getFullTableName, getMMBase, getNode, getNodes, getNodes, getNodes, getNodeType, getStorageConnector, getTableName, search, searchVector, setMMBase, setTableName, size
 
Methods inherited from class org.mmbase.util.functions.FunctionProvider
addFunction, createParameters, getFunction, getFunctions, getFunctionValue
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.mmbase.module.builders.ImagesInterface
getBinary, getFileName
 

Field Detail

HEIGHT_PARAMETERS

public static final Parameter[] HEIGHT_PARAMETERS

WIDTH_PARAMETERS

public static final Parameter[] WIDTH_PARAMETERS

DIMENSION_PARAMETERS

public static final Parameter[] DIMENSION_PARAMETERS

FIELD_ITYPE

public static final String FIELD_ITYPE
See Also:
Constant Field Values

FIELD_FILESIZE

public static final String FIELD_FILESIZE
See Also:
Constant Field Values

FIELD_HEIGHT

public static final String FIELD_HEIGHT
See Also:
Constant Field Values

FIELD_WIDTH

public static final String FIELD_WIDTH
See Also:
Constant Field Values

handleCache

protected static BlobCache handleCache

IMAGE_HANDLE_FIELDS

protected final Set<String> IMAGE_HANDLE_FIELDS
Constructor Detail

AbstractImages

public AbstractImages()
Method Detail

getBlobCache

protected BlobCache getBlobCache(String fieldName)
Description copied from class: MMObjectBuilder
Returns

Overrides:
getBlobCache in class MMObjectBuilder

getAssociation

protected String getAssociation()
Description copied from class: AbstractServletBuilder
This functions should return a string identifying where it is for. This is used when communicating with MMBaseServlet, to find the right servlet. For example 'images' or 'attachments'.

Specified by:
getAssociation in class AbstractServletBuilder

getDefaultPath

protected String getDefaultPath()
Description copied from class: AbstractServletBuilder
If no servlet path can be found via the association (if the servlet did not 'associate' itself with something, like servdb), then the getServletPath function will fall back to this. For example 'img.db' or 'attachment.db'.

Specified by:
getDefaultPath in class AbstractServletBuilder

getGUIIndicatorWithAlt

protected abstract String getGUIIndicatorWithAlt(MMObjectNode node,
                                                 String title,
                                                 Parameters a)
An image's gui-indicator is of course some <img src>, but it depends on what kind of image (cached, original) what excactly it must be.


getSGUIIndicatorForNode

protected String getSGUIIndicatorForNode(MMObjectNode node,
                                         Parameters a)
Returns GUI Indicator for node

Since:
MMBase-1.7

getSGUIIndicator

protected String getSGUIIndicator(MMObjectNode node,
                                  Parameters a)
Description copied from class: AbstractServletBuilder
'Servlet' builders need a way to transform security to the servlet, in the gui functions, so they have to implement the 'SGUIIndicators'

Specified by:
getSGUIIndicator in class AbstractServletBuilder
Since:
MMBase-1.7

getHandleFields

protected Set<String> getHandleFields()
Description copied from class: AbstractServletBuilder
Returns the fields which tell something about the 'handle' field, and can be calculated from it.

Specified by:
getHandleFields in class AbstractServletBuilder

getMimeType

public String getMimeType(MMObjectNode node)
Determine the MIME type of this image node, based on the image format.

Overrides:
getMimeType in class AbstractServletBuilder

storesDimension

protected boolean storesDimension()
Whether this builders has width and height fields


storesFileSize

protected boolean storesFileSize()
Whether this builders has a filesize field.


storesImageType

protected boolean storesImageType()
Whether this builders has a filesize field.


getDimensionForEmptyHandle

protected Dimension getDimensionForEmptyHandle(MMObjectNode node)
Since:
MMBase-1.8.1

getDimension

public Dimension getDimension(MMObjectNode node)
Gets the dimension of given node. Also when the fields are missing, it will result a warning then.

Specified by:
getDimension in interface ImagesInterface

getFileSize

protected int getFileSize(MMObjectNode node)

getDefaultImageType

protected String getDefaultImageType()
The default image type is used when magic could not determin the type


handleEmpty

protected boolean handleEmpty(MMObjectNode node)
Since:
MMBase-1.8.5

getImageFormat

public String getImageFormat(MMObjectNode node)
Determines the image type of an object and stores the content in the itype field.

Specified by:
getImageFormat in interface ImagesInterface
Parameters:
node - The object to use.

checkHandle

protected void checkHandle(MMObjectNode node)
Description copied from class: AbstractServletBuilder
Tries to fill all fields which are dependend on the 'handle' field. They will be filled automaticly if not still null.

Overrides:
checkHandle in class AbstractServletBuilder

executeFunction

protected Object executeFunction(MMObjectNode node,
                                 String function,
                                 List<?> args)
Every image of course has a format and a mimetype. Two extra functions to get them.

Overrides:
executeFunction in class AbstractServletBuilder
See Also:
MMObjectBuilder.executeFunction(org.mmbase.module.core.MMObjectNode, java.lang.String, java.util.List)


MMBase 2.0-SNAPSHOT - null