public class Alert extends Data implements DBData, DBConstants
Modifier and Type | Class and Description |
---|---|
static class |
Alert.Level |
Data.AuthorComparator<T extends Data>, Data.AuthorizedSelector, Data.AuthorSelector, Data.CdateSelector, Data.DataNameComparator<T extends Data>, Data.DeletableSelector, Data.ImportSelector, Data.MdateSelector, Data.OpAuthorComparator<T extends Data>, Data.RowIdComparator<T extends Data>, Data.StrongLockSelector
BasicStorable.CdateComparator<T extends Storable>, BasicStorable.IdComparator<T extends Storable>, BasicStorable.MdateComparator<T extends Storable>
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ATTRIBUTE_MAP_STR_FIELD |
protected Data |
data |
static java.lang.String |
DATA_ID_FIELD |
protected java.lang.String |
dataId |
protected java.lang.String |
description |
protected java.lang.String |
domain |
static java.lang.String |
DOMAIN_FIELD |
protected java.util.Date |
expiration |
static java.lang.String |
EXPIRATION_FIELD |
static int |
HIBERNATE_MAPPING_ATTRIBUTE_MAP_STR |
static int |
HIBERNATE_MAPPING_DATA_ID |
static int |
HIBERNATE_MAPPING_DESCRIPTION |
static int |
HIBERNATE_MAPPING_DOMAIN |
static int |
HIBERNATE_MAPPING_EXPIRATION |
static int |
HIBERNATE_MAPPING_LEVEL_VALUE |
static int |
HIBERNATE_MAPPING_MESSAGE |
static int |
HIBERNATE_MAPPING_MESSAGE_MARKUP |
static int |
HIBERNATE_MAPPING_NAME |
static int |
HIBERNATE_MAPPING_READ |
static int |
HIBERNATE_MAPPING_RECIPIENT_ID |
static int |
HIBERNATE_MAPPING_SHORT_DESCRIPTION |
static int |
HIBERNATE_MAPPING_SUMMARY |
static int |
HIBERNATE_MAPPING_TITLE |
static int |
HIBERNATE_MAPPING_WORKSPACE_ID |
protected Alert.Level |
level |
static java.lang.String |
LEVEL_FIELD |
static java.lang.String |
LEVEL_PREFIX_PROP |
protected java.lang.String |
message |
protected java.lang.String |
messageMarkup |
protected java.lang.String |
name |
static java.lang.String |
NAME_FIELD |
protected boolean |
read |
static java.lang.String |
READ_FIELD |
static java.lang.String |
RECIPIEND_ID_FIELD |
protected Member |
recipient |
static java.lang.String |
REVISION |
static int |
SHORT_DESCRIPTION_MAXSIZE |
protected java.lang.String |
shortDescription |
protected java.lang.String |
summary |
protected java.lang.String |
title |
protected Workspace |
workspace |
static java.lang.String |
WORKSPACE_ID_FIELD |
protected java.lang.String |
workspaceId |
author, authorDBID, channel, DISPLAY_URL_EXTRA_INFO, extension, extraDataMap, extraDBDataMapToSaveOnOp, importMap, opAuthor, opDelegate
ALL_CATEGORIES_SET_FIELD, ATTACH_WS_SET_FIELD, AUTH_GRP_SET_FIELD, AUTH_MBR_SET_FIELD, AUTHOR_ID_FIELD, CATEGORIES_SET_FIELD, CDATE_FIELD, CHANNEL_JCMSDB_PROP, DBDATA_URID, HAS_ATTACH_WS_FIELD, HAS_NO_READ_RIGHTS, HIBERNATE_MAPPING_ADATE, HIBERNATE_MAPPING_AUTHOR, HIBERNATE_MAPPING_CDATE, HIBERNATE_MAPPING_EDATE, HIBERNATE_MAPPING_HAS_ATTACH_WS, HIBERNATE_MAPPING_HASNOREADRIGHTS, HIBERNATE_MAPPING_MAININSTANCE_ID, HIBERNATE_MAPPING_MAJORVERSION, HIBERNATE_MAPPING_MDATE, HIBERNATE_MAPPING_MERGE_DATE, HIBERNATE_MAPPING_MERGE_ID, HIBERNATE_MAPPING_MINORVERSION, HIBERNATE_MAPPING_OPAUTHOR, HIBERNATE_MAPPING_PDATE, HIBERNATE_MAPPING_PSTATUS, HIBERNATE_MAPPING_READ_ACK, HIBERNATE_MAPPING_READERCOUNT, HIBERNATE_MAPPING_RESTRICTIVE_UPDATE_RIGHTS, HIBERNATE_MAPPING_TRACKED, HIBERNATE_MAPPING_UDATE, HIBERNATE_MAPPING_VOTECOUNT, HIBERNATE_MAPPING_VOTESCORE, HIBERNATE_MAPPING_WORKFLOW_ID, MAX_HIBERNATE_MAPPING_PUBLICATION, MDATE_FIELD, OPAUTHOR_ID_FIELD, PSTATUS_FIELD, ROW_ID_FIELD, SCROLL_FETCH_SIZE, WORKFLOW_ID_FIELD
ADATE_SEARCH, ADMIN_NOTES_PROP, ADVANCED_TAB, AJAX_MODE_ATTR, ARCHIVES_DIR, ASCII_WIDTH, CATEGORY_TAB, CDATE_SEARCH, CLASS_PROPERTY, COMMON_ALARM, CONTENT_TAB, COOKIE_MAX_AGE, COUNTRY_SPRITE, CTRL_TOPIC_INTERNAL, CTRL_TOPIC_REF, CTRL_TOPIC_VALUE, CTRL_TOPIC_WRITE, CUSTOM_PROP, DOCCHOOSER_HEIGHT, DOCCHOOSER_WIDTH, DOCS_DIR, EDATE_SEARCH, EMAIL_REGEXP, ERROR_MSG, FORBIDDEN_FILE_ACCESS, FORBIDDEN_REDIRECT, FORCE_REDIRECT, GLYPH_ICON_PREFIX, ICON_ARCHIVE, ICON_ICON_PREFIX, ICON_LOCK, ICON_LOCK_STRONG, ICON_PREFIX_PROP, ICON_WARN, ICON_WH_BOOK_CLOSED, ICON_WH_BOOK_OPEN, INFORMATION_MSG, IS_IN_FRONT_OFFICE, JALIOS_JUNIT_PROP, JCMS_CADDY, JCMS_MSG_LIST, JCMS_TOASTR_COLLECTION, JSYNC_DOWNLOAD_DIR, JSYNC_SYNC_ALARM, LANG_SPRITE, LOG_FILE, LOG_TOPIC_SECURITY, LOGGER_PROP, LOGGER_XMLPROP, MBR_PHOTO_DIR, MDATE_SEARCH, MONITOR_XML, OP_CREATE, OP_CREATE_STR, OP_DEEP_COPY, OP_DEEP_COPY_STR, OP_DEEP_DELETE, OP_DEEP_DELETE_STR, OP_DELETE, OP_DELETE_STR, OP_MERGE, OP_MERGE_STR, OP_UPDATE, OP_UPDATE_STR, ORGANIZATION_ROOT_GROUP_PROP, PDATE_SEARCH, PHOTO_DIR, PHOTO_ICON, PHOTO_ICON_HEIGHT, PHOTO_ICON_PROP_PREFIX, PHOTO_ICON_WIDTH, PHOTO_LARGE, PHOTO_LARGE_HEIGHT, PHOTO_LARGE_PROP_PREFIX, PHOTO_LARGE_WIDTH, PHOTO_NORMAL, PHOTO_NORMAL_HEIGHT, PHOTO_NORMAL_PROP_PREFIX, PHOTO_NORMAL_WIDTH, PHOTO_SMALL, PHOTO_SMALL_HEIGHT, PHOTO_SMALL_PROP_PREFIX, PHOTO_SMALL_WIDTH, PHOTO_TINY, PHOTO_TINY_HEIGHT, PHOTO_TINY_PROP_PREFIX, PHOTO_TINY_WIDTH, PREVIOUS_TAB, PRINT_VIEW, PRIVATE_FILE_ACCESS, PUBLIC_FILE_ACCESS, RAW_CONTENT_ICON_PREFIX, READ_RIGHT_TAB, SDATE_SEARCH, SEARCHENGINE_ALARM, SESSION_AUTHORIZED_FILENAMES_SET, SPRITE_ICON_PREFIX, STATS_REPORT_DIR, STATUS_PROP, STORE_XML, SUCCESS_MSG, SVG_ICON_PREFIX, SVGINLINE_ICON_PREFIX, TEMPLATE_TAB, THUMBNAIL_LARGE_HEIGHT, THUMBNAIL_LARGE_WIDTH, THUMBNAIL_SMALL_HEIGHT, THUMBNAIL_SMALL_WIDTH, TTCARD_MEDIA_HEIGHT, TTCARD_MEDIA_WIDTH, TYPES_ICON_ALT_PROP, TYPES_ICON_SUFFIX_PROP, TYPES_ICON_TITLE_PROP, TYPES_PREFIX_PROP, TYPES_THUMB_SUFFIX_PROP, UDATE_SEARCH, UPDATE_RIGHT_TAB, UPLOAD_DIR, UPLOAD_PERMISSION_SIZE_PROP_PREFIX, URL_REGEXP, VID_LOGGED_MEMBER, WARNING_MSG, WEBAPP_PROP, WFEXPRESS_ALARM, WFREMINDER_ALARM, WORKFLOW_TAB, WORKFLOW_XML
CRLF, MILLIS_IN_ONE_DAY, MILLIS_IN_ONE_HOUR, MILLIS_IN_ONE_MINUTE, MILLIS_IN_ONE_MONTH, MILLIS_IN_ONE_SECOND, MILLIS_IN_ONE_WEEK, MILLIS_IN_ONE_YEAR
IMPORT_ALARM_MGR, IMPORT_AUTHOR_PROP, IMPORT_CATEGORY_DEFAULT, IMPORT_DC_ATTR, IMPORT_DC_STEP, IMPORT_DIR, IMPORT_ENABLED, IMPORT_JDOM_ELEMENT, IMPORT_LOG_FILE, IMPORT_LOG_MAX, IMPORT_OPTIONS, IMPORT_OPTIONS_DC_CONTEXT, IMPORT_ROOT_PROP, IMPORT_SOURCE_FILE, IMPORT_SOURCE_PREFIX_PROP, IMPORT_SOURCES_DIR, IMPORT_STEP_CLEAN, IMPORT_STEP_IMPORT, IMPORT_STEP_UPDATE_REF, IMPORT_WS_PROP
DATA_TAG, DATASET_TAG, FIELD_CLASS, FIELD_ENTRY, FIELD_ITEM, FIELD_KEY, FIELD_NAME, FIELD_TAG, FIELD_VALUE, FILE_FIELD, FILE_ID, FILE_MTIME, FILE_SIZE, FILE_TAG, FILE_TICKET, FILESET_TAG, RELATED_TAG
Constructor and Description |
---|
Alert() |
Alert(Alert.Level level,
java.lang.String domain,
java.lang.String name,
Member recipient,
Data data,
Member author) |
Modifier and Type | Method and Description |
---|---|
boolean |
canBeSaved() |
ControllerStatus |
checkIntegrity()
Checks whether or not data integrity constraints are respected.
|
void |
exportXmlField(java.lang.StringBuffer sb,
int indentLevel)
Fills the given StringBuffer with Xml export of fields of this data.
|
java.lang.String |
getAttribute(java.lang.String name)
Returns the value of the named attribute as an
String ,
or null if no attribute of the given name exists. |
java.util.Map<java.lang.String,java.lang.String> |
getAttributeMap()
Returns a java.util.Map of the attributes of this Alert.
|
java.lang.String |
getAttributeMapStr()
Returns a JSON representation of the attribute map of this Alert.
|
java.util.Map<java.lang.String,java.lang.Object> |
getContext() |
Data |
getData() |
java.lang.String |
getDataId()
Do not call this method.
|
java.lang.String |
getDescription() |
java.lang.String |
getDomain() |
java.util.Date |
getExpiration() |
java.lang.String |
getFullName()
Returns the full name of the alert (domain + name).
|
Alert.Level |
getLevel() |
int |
getLevelValue() |
java.lang.String |
getMessage() |
java.lang.String |
getMessageMarkup() |
java.lang.String |
getName() |
Member |
getRecipient() |
java.lang.String |
getRecipientId() |
java.lang.String |
getShortDescription() |
java.lang.String |
getSummary() |
java.lang.String |
getTitle() |
Workspace |
getWorkspace() |
java.lang.String |
getWorkspaceId()
Do not call this method.
|
boolean |
hasExpiration()
Returns true if the alert has an expiration date.
|
boolean |
hasMessage()
Returns true if a message is attached to this alert.
|
boolean |
isRead() |
boolean |
matches(AlertRule rule)
Returns true if this alert matches the given rule.
|
java.lang.String |
removeAttribute(java.lang.String name)
Removes an attribute from this Alert.
|
java.lang.String |
setAttribute(java.lang.String name,
java.lang.String value)
Stores an attribute in this Alert.
|
void |
setAttributeMap(java.util.Map<java.lang.String,java.lang.String> map)
Set the Map of the attributes of this Alert.
|
void |
setAttributeMapStr(java.lang.String json)
Set the attribute map of this Alert, from the specified JSON representation.
|
void |
setAuthorId(java.lang.String authordId)
Sets the JStore ID of the author (only for DBData).
|
void |
setCanBeSaved(boolean canBeSaved) |
void |
setContext(java.util.Map<java.lang.String,java.lang.Object> context) |
void |
setData(Data v)
Change 'data' (and workspace if applyable)
|
void |
setDataId(java.lang.String v)
Do not call this method.
|
void |
setDescription(java.lang.String description) |
void |
setDomain(java.lang.String domain) |
void |
setExpiration(java.util.Date expiration) |
void |
setLevel(Alert.Level level) |
void |
setLevelValue(int v) |
void |
setMessage(java.lang.String message) |
void |
setMessageMarkup(java.lang.String messageMarkup) |
void |
setName(java.lang.String name) |
void |
setRead(boolean read) |
void |
setRecipient(Member recipient) |
void |
setRecipientId(java.lang.String v) |
void |
setShortDescription(java.lang.String shortDescription) |
void |
setSummary(java.lang.String summary) |
void |
setTitle(java.lang.String title) |
void |
setWorkspaceId(java.lang.String v)
Do not call this method.
|
java.lang.String |
toString() |
canBeReadBy, canBeReadBy, canBeUnlockedBy, canRequestUnlock, checkAndPerformCreate, checkAndPerformCreate, checkAndPerformDelete, checkAndPerformDelete, checkAndPerformUpdate, checkAndPerformUpdate, checkCreate, checkCreate, checkDelete, checkDelete, checkIntegrity, checkLockMember, checkMember, checkStrongLockMember, checkStrongLockMember, checkUpdate, checkUpdate, checkWrite, cleanHybridCollection, cleanHybridCollection, cleanHybridCollection, cleanHybridCollections, clone, computeDBIDArray, computeDBIDList, computeDBIDSet, exportXml, exportXml, exportXml, exportXml, exportXmlRelated, exportXmlRelated, fillExportXmlFieldAttributes, getAllReferrerSet, getAllReferrerSet, getAllTypeFieldEntry, getAuthor, getAuthor, getAuthorComparator, getAuthorDBID, getAuthorId, getAuthorSelector, getBooleanFieldValue, getBooleanFieldValue, getCaddyComparator, getCategoryFieldValue, getCategoryFieldValue, getCdateSelector, getComparator, getCSVHeader, getDataIcon, getDataIconAlt, getDataIconCSS, getDataIconHtml, getDataIconHtml, getDataIconTitle, getDataImage, getDataImage, getDataImage, getDataName, getDataNameComparator, getDate, getDate, getDateSelector, getDeletableSelector, getDisplayLink, getDisplayLink, getDisplayLink, getDisplayLinkCss, getDisplayLinkDataAttribute, getDisplayLinkHtmlAttributes, getDisplayUrl, getDoubleFieldValue, getDoubleFieldValue, getExportXmlDataValue, getExtension, getExtraData, getExtraDataMap, getExtraDBData, getExtraDBDataMap, getExtraInfo, getExtraInfoMap, getFieldStatusMap, getFieldValue, getFieldValue, getFieldValue, getFieldValue, getGenericThumbnail, getGenericThumbnail, getImportAuthor, getImportBatch, getImportDate, getImportDisplayUrl, getImportId, getImportMap, getImportMdate, getImportSelector, getImportSignature, getImportSource, getImportSourceUrl, getImportUrl, getIntFieldValue, getIntFieldValue, getLangPropertyValue, getLinkCount, getLinkIndexedDataSet, getLinkIndexedDataSet, getLockDate, getLockInfo, getLockMember, getLongFieldValue, getLongFieldValue, getMdateSelector, getNewDefaultExtraDataMap, getNewDefaultExtraDataMap, getNewDefaultExtraDataMap, getNewDefaultExtraDataMap, getNewDefaultExtraDBDataMap, getNewDefaultExtraDBDataMap, getNewDefaultExtraDBDataMap, getNewDefaultExtraDBDataMap, getOpAuthor, getOpAuthorComparator, getOpAuthorId, getOpDelegate, getReadAuthorizedSelector, getReferrerSet, getRowId, getRowIdComparator, getStrongLock, getStrongLockContext, getStrongLockContextData, getStrongLockDate, getStrongLockInfo, getStrongLockMember, getStrongLockSelector, getTypeEntry, getTypeFieldsEntries, getUpdateInstance, getVirtualIDSet, importXml, importXmlFieldsWithReferences, importXmlFiles, importXmlReferences, initializeDBDataCollections, isDBData, isImported, isImportUpdated, isInDatabase, isLocked, isPersisted, isStrongLocked, lock, markNewImport, mergeHybridLink, mergeHybridLink, performAfterWrite, performBeforeWrite, performCreate, performCreate, performDelete, performDelete, performUpdate, performUpdate, prepareUpdateContext, printDataName, printDisplayLinkEnd, printDisplayLinkStart, printDisplayLinkStart, printDisplayUrl, printDisplayUrl, putStrongLock, putStrongLock, releaseStrongLock, releaseStrongLock, removeExtraData, removeExtraDBData, removeExtraInfo, setAuthor, setAuthorDBID, setBooleanFieldValue, setCategoryFieldValue, setDoubleFieldValue, setExtension, setExtraData, setExtraDataMap, setExtraDBData, setExtraDBDataMap, setExtraDBDataMap, setExtraInfo, setFieldValue, setFieldValue, setId, setImportAuthor, setImportBatch, setImportDate, setImportDisplayUrl, setImportId, setImportMap, setImportMdate, setImportSignature, setImportSource, setImportSourceUrl, setImportUpdated, setIntFieldValue, setLongFieldValue, setMdate, setOpAuthor, setOpAuthorId, setOpDelegate, setRowId, splitHybridCollections, toCSV, toFullString, unlock, unlock, unmarkNewImport, updateDisplayLinkCss, updateDisplayLinkDataAttribute, updateDisplayLinkHtmlAttributes, updateExtraDataMap, updateExtraDBDataMap, updateIndexTreeSet
clearId, compareTo, equals, getAttribute, getAttributes, getCdate, getCdateComparator, getDdate, getId, getIdComparator, getMdate, getMdateComparator, getStore, getUrid, hasBeenUpdated, hashCode, isStored, resolveAtt, resolveVal, setAttributes, setAttributes, setCdate, setDdate, setStore, toXml
public static final java.lang.String REVISION
public static final java.lang.String LEVEL_PREFIX_PROP
public static final int SHORT_DESCRIPTION_MAXSIZE
public static final java.lang.String RECIPIEND_ID_FIELD
public static final java.lang.String LEVEL_FIELD
public static final java.lang.String DOMAIN_FIELD
public static final java.lang.String NAME_FIELD
public static final java.lang.String READ_FIELD
public static final java.lang.String DATA_ID_FIELD
public static final java.lang.String WORKSPACE_ID_FIELD
public static final java.lang.String EXPIRATION_FIELD
public static final java.lang.String ATTRIBUTE_MAP_STR_FIELD
public static final int HIBERNATE_MAPPING_RECIPIENT_ID
public static final int HIBERNATE_MAPPING_LEVEL_VALUE
public static final int HIBERNATE_MAPPING_DOMAIN
public static final int HIBERNATE_MAPPING_NAME
public static final int HIBERNATE_MAPPING_DATA_ID
public static final int HIBERNATE_MAPPING_READ
public static final int HIBERNATE_MAPPING_TITLE
public static final int HIBERNATE_MAPPING_DESCRIPTION
public static final int HIBERNATE_MAPPING_SHORT_DESCRIPTION
public static final int HIBERNATE_MAPPING_SUMMARY
public static final int HIBERNATE_MAPPING_MESSAGE
public static final int HIBERNATE_MAPPING_MESSAGE_MARKUP
public static final int HIBERNATE_MAPPING_EXPIRATION
public static final int HIBERNATE_MAPPING_WORKSPACE_ID
public static final int HIBERNATE_MAPPING_ATTRIBUTE_MAP_STR
protected transient java.lang.String dataId
protected transient Data data
protected transient java.lang.String workspaceId
protected transient Workspace workspace
protected Member recipient
protected Alert.Level level
protected java.lang.String domain
protected java.lang.String name
protected java.lang.String title
protected java.lang.String description
protected java.lang.String shortDescription
protected java.lang.String summary
protected java.lang.String message
protected java.lang.String messageMarkup
protected boolean read
protected java.util.Date expiration
public Alert()
public Alert(Alert.Level level, java.lang.String domain, java.lang.String name, Member recipient, Data data, Member author)
public java.lang.String getFullName()
public boolean hasMessage()
public ControllerStatus checkIntegrity()
Data
checkIntegrity
in class Data
public boolean matches(AlertRule rule)
rule
- the rulepublic void setAuthorId(java.lang.String authordId)
Data
If the specified authorId is an invalid ID (non existing Member), the author will be set to the Member specified by property channel.default-author
(or left null if this property has not been set).
setAuthorId
in class Data
authordId
- the JStore author idpublic Member getRecipient()
public void setRecipient(Member recipient)
public java.lang.String getRecipientId()
public void setRecipientId(java.lang.String v)
public int getLevelValue()
public void setLevelValue(int v)
public Alert.Level getLevel()
public void setLevel(Alert.Level level)
public java.lang.String getDomain()
public void setDomain(java.lang.String domain)
public java.lang.String getName()
public void setName(java.lang.String name)
public Data getData()
public void setData(Data v)
v
- the datapublic java.lang.String getDataId()
public void setDataId(java.lang.String v)
v
- the data idpublic Workspace getWorkspace()
public java.lang.String getWorkspaceId()
public void setWorkspaceId(java.lang.String v)
v
- The workspace ID.public boolean isRead()
public void setRead(boolean read)
public java.lang.String getTitle()
public void setTitle(java.lang.String title)
public java.lang.String getDescription()
public void setDescription(java.lang.String description)
public java.lang.String getShortDescription()
public void setShortDescription(java.lang.String shortDescription)
public java.lang.String getSummary()
public void setSummary(java.lang.String summary)
public java.lang.String getMessage()
public void setMessage(java.lang.String message)
public java.lang.String getMessageMarkup()
public void setMessageMarkup(java.lang.String messageMarkup)
public boolean hasExpiration()
public java.util.Date getExpiration()
public void setExpiration(java.util.Date expiration)
public boolean canBeSaved()
public void setCanBeSaved(boolean canBeSaved)
public void setContext(java.util.Map<java.lang.String,java.lang.Object> context)
public java.util.Map<java.lang.String,java.lang.Object> getContext()
public java.lang.String setAttribute(java.lang.String name, java.lang.String value)
removeAttribute(java.lang.String)
.name
- a String
specifying the name of the attributevalue
- the String
to be storednull
if there was no mapping for name. A null
return can
also indicate that null
was associated
with the specified name.public java.lang.String removeAttribute(java.lang.String name)
name
- a String
specifyingnull
if there was no mapping for name. A null
return can
also indicate that null
was associated
with the specified name.public java.lang.String getAttribute(java.lang.String name)
String
,
or null
if no attribute of the given name exists.name
- a String
specifying the name of the attributeString
containing the value of the attribute,
or null
if the attribute does not existpublic void setAttributeMap(java.util.Map<java.lang.String,java.lang.String> map)
map
- the new map to use for this Alert, modify with care.public java.util.Map<java.lang.String,java.lang.String> getAttributeMap()
public java.lang.String getAttributeMapStr()
public void setAttributeMapStr(java.lang.String json)
json
- a JSON representation of the attribute mappublic void exportXmlField(java.lang.StringBuffer sb, int indentLevel)
Data
exportXmlField
in class Data
sb
- the StringBufferindentLevel
- the indent levelCopyright © 2001-2021 Jalios SA. All Rights Reserved.