/* See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* Esri Inc. licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.esri.gpt.catalog.publication;
import com.esri.gpt.catalog.management.MmdEnums;
import com.esri.gpt.framework.util.UuidUtil;
import com.esri.gpt.framework.util.Val;
/**
* Describes the basic properties for a metadata document that is about to be
* published.
*/
public class PublicationRecord {
// class variables =============================================================
// instance variables ==========================================================
private boolean _autoApprove = false;
private String _approvalStatus = "";
private String _fileIdentifier = "";
private String _publicationMethod;
private String _sourceFileName = "";
private String _siteUuid = "";
private String _sourceUri = "";
private String _sourceXml = "";
private boolean _updateOnlyIfXmlHasChanged = true;
private String _uuid = "";
private boolean _wasDocumentReplaced = false;
private boolean _wasDocumentUnchanged = false;
private String _alternativeTitle = "";
private boolean _lockTitle;
private boolean _indexEnabled = true;
// constructors ================================================================
/** Default constructor. */
public PublicationRecord() {}
// properties ==================================================================
/**
* Gets the status indicating if a new document should be automatically approved.
* @return true if a new document should be automatically approved
*/
public boolean getAutoApprove() {
return _autoApprove;
}
/**
* Sets the status indicating if a new document should be automatically approved.
* @param autoApprove true if a new document should be automatically approved
*/
public void setAutoApprove(boolean autoApprove) {
_autoApprove = autoApprove;
}
/**
* Gets the approval status.
* @return the approval status
*/
public String getApprovalStatus() {
return _approvalStatus;
}
/**
* Sets the approval status.
* @param status the approval status
*/
public void setApprovalStatus(String status) {
status = Val.chkStr(status);
_approvalStatus = MmdEnums.ApprovalStatus.valueOf(status).toString();
}
/**
* Gets the file identifier.
* <br/>The file identifier is typically associated with ISO-19139 documents.
* @return the file identifier
*/
public String getFileIdentifier() {
return _fileIdentifier;
}
/**
* Sets the file identifier.
* <br/>The file identifier is typically associated with ISO-19139 documents.
* @param id the file identifier
*/
public void setFileIdentifier(String id) {
_fileIdentifier = Val.chkStr(id);
}
/**
* Gets the publication method.
* @return the publication method
*/
public String getPublicationMethod() {
return _publicationMethod;
}
/**
* Sets the publication method.
* @param method the publication method
*/
public void setPublicationMethod(String method) {
_publicationMethod = method;
}
/**
* Gets the source file name (applicable for uploaded files).
* @return the source file name
*/
public String getSourceFileName() {
return _sourceFileName;
}
/**
* Sets the source file name (applicable for uploaded files).
* @param fileName the source file name
*/
public void setSourceFileName(String fileName) {
_sourceFileName = Val.chkStr(fileName);
}
/**
* Gets harvest site UUID.
* @return the harvest site UUID
*/
public String getSiteUuid() {
return _siteUuid;
}
/**
* Sets harvest site UUID.
* @param siteUuid harvest site UUID
*/
public void setSiteUuid(String siteUuid) {
_siteUuid = UuidUtil.isUuid(siteUuid)? siteUuid: "";
}
/**
* Gets the source URI for the document.
* @return the source URI
*/
public String getSourceUri() {
return _sourceUri;
}
/**
* Sets the source URI for the document.
* @param uri the source URI
*/
public void setSourceUri(String uri) {
_sourceUri = Val.chkStr(uri,4000);
}
/**
* Gets the source XML string.
* @return the source XML string
*/
public String getSourceXml() {
return _sourceXml;
}
/**
* Sets the source XML string.
* @param xml the source XML string
*/
public void setSourceXml(String xml) {
_sourceXml = Val.chkStr(Val.removeBOM(xml));
}
/**
* Gets the status indicating if a document should be updated only if the XML has changed.
* @return true if a document should be updated only if the XML has changed
*/
public boolean getUpdateOnlyIfXmlHasChanged() {
return _updateOnlyIfXmlHasChanged;
}
/**
* Sets the status indicating if a document should be updated only if the XML has changed.
* @param onlyIfChanged true if a document should be updated only if the XML has changed
*/
public void setUpdateOnlyIfXmlHasChanged(boolean onlyIfChanged) {
_updateOnlyIfXmlHasChanged = onlyIfChanged;
}
/**
* Gets the UUID for the document.
* @return the UUID
*/
public String getUuid() {
return _uuid;
}
/**
* Sets the UUID for the document.
* @param uuid the UUID
*/
public void setUuid(String uuid) {
_uuid = UuidUtil.addCurlies(uuid);
}
/**
* Gets the status indicating if a document was replaced within the catalog.
* @return true if the document was replaced
*/
public boolean getWasDocumentReplaced() {
return _wasDocumentReplaced;
}
/**
* Sets the status indicating if a document was replaced within the catalog.
* @param wasReplaced true if the document was replaced
*/
protected void setWasDocumentReplaced(boolean wasReplaced) {
_wasDocumentReplaced = wasReplaced;
}
/**
* Gets the status indicating if a document was unchanged
* (no XML change, no database update tool place).
* @return true if the document was unchanged
*/
public boolean getWasDocumentUnchanged() {
return _wasDocumentUnchanged;
}
/**
* Sets the status indicating if a document was unchanged
* (no XML change, no database update tool place).
* @param wasUnchanged true if the document was unchanged
*/
protected void setWasDocumentUnchanged(boolean wasUnchanged) {
_wasDocumentUnchanged = wasUnchanged;
}
/**
* Gets alternative title.
* This is a title provided by the user (not extracted from the resource).
* Used only when dealing with registered resource. If set it overrides possible
* title from the resource.
* @return alternative title
*/
public String getAlternativeTitle() {
return _alternativeTitle;
}
/**
* Sets alternative title.
* This is a title provided by the user (not extracted from the resource).
* Used only when dealing with registered resource. If set it overrides possible
* title from the resource.
* @param title alternative title
*/
public void setAlternativeTitle(String title) {
this._alternativeTitle = Val.chkStr(title);
}
/**
* Checks if updating title is enabled.
* Used only when dealing with registered resources.
* @return <code>true</code> if updating title is enabled
*/
public boolean getLockTitle() {
return _lockTitle;
}
/**
* Enables updating title.
* Used only when dealing with registered resources.
* @param lockTitle <code>true</code> to enable updating title
*/
public void setLockTitle(boolean lockTitle) {
this._lockTitle = lockTitle;
}
/**
* Checks if index creation is enabled. Default: <code>true</code>.
* @return <code>true</code> if index creation is enabled
*/
public boolean getIndexEnabled() {
return _indexEnabled;
}
/**
* Enables index creation. Default: <code>true</code>.
* @param indexEnabled <code>true</code> to enable index creation
*/
public void setIndexEnabled(boolean indexEnabled) {
this._indexEnabled = indexEnabled;
}
// methods =====================================================================
}