\r
import java.util.UUID;\r
\r
+import org.apache.commons.lang.StringUtils;\r
import org.apache.log4j.Logger;\r
\r
import eu.etaxonomy.cdm.common.CdmUtils;\r
import eu.etaxonomy.cdm.model.agent.Institution;\r
import eu.etaxonomy.cdm.model.occurrence.Collection;\r
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;\r
-import eu.etaxonomy.cdm.model.occurrence.Specimen;\r
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;\r
import eu.etaxonomy.cdm.strategy.StrategyBase;\r
import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;\r
\r
* @date 03.06.2010\r
*\r
*/\r
-public class DerivedUnitFacadeCacheStrategy extends StrategyBase implements IIdentifiableEntityCacheStrategy<DerivedUnitBase> {\r
+public class DerivedUnitFacadeCacheStrategy extends StrategyBase implements IIdentifiableEntityCacheStrategy<DerivedUnit> {\r
private static final long serialVersionUID = 1578628591216605619L;\r
@SuppressWarnings("unused")\r
private static final Logger logger = Logger.getLogger(DerivedUnitFacadeCacheStrategy.class);\r
\r
private static final UUID uuid = UUID.fromString("df4672c1-ce5c-4724-af6d-91e2b326d4a4");\r
\r
- \r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.strategy.StrategyBase#getUuid()\r
*/\r
protected UUID getUuid() {\r
return uuid;\r
}\r
- \r
+\r
+ private boolean includeEmptySeconds = false;\r
+ private boolean includeReferenceSystem = true;\r
\r
\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy#getTitleCache(eu.etaxonomy.cdm.model.common.IdentifiableEntity)\r
*/\r
@Override\r
- public String getTitleCache(DerivedUnitBase specimen) {\r
- String ALTITUDE_PREFIX = "alt. ";\r
- String ALTITUDE_POSTFIX = " m";\r
- \r
+ public String getTitleCache(DerivedUnit derivedUnit) {\r
+ DerivedUnitFacadeFieldUnitCacheStrategy fieldStrategy = new DerivedUnitFacadeFieldUnitCacheStrategy();\r
+\r
String result = "";\r
\r
DerivedUnitFacade facade;\r
try {\r
- facade = DerivedUnitFacade.NewInstance(specimen);\r
- //country\r
- //TODO\r
+ DerivedUnitFacadeConfigurator config = DerivedUnitFacadeConfigurator.NewInstance();\r
+ config.setFirePropertyChangeEvents(false);\r
+ facade = DerivedUnitFacade.NewInstance(derivedUnit, config);\r
+ result += fieldStrategy.getFieldData(facade);\r
\r
- // FIXME hasGatheringEvent needed;\r
- //locality\r
- result = CdmUtils.concat(", ", result, facade.getLocalityText());\r
- //elevation\r
- if (facade.getAbsoluteElevation() != null){\r
- result = CdmUtils.concat(", " , result, ALTITUDE_PREFIX);\r
- result += facade.getAbsoluteElevation() + ALTITUDE_POSTFIX;\r
+ //Exsiccatum\r
+ String exsiccatum = null;\r
+ try {\r
+ exsiccatum = facade.getExsiccatum();\r
+ } catch (MethodNotSupportedByDerivedUnitTypeException e) {\r
+ //NO exsiccatum if this facade doe not represent a specimen\r
}\r
- //ecology\r
- result = CdmUtils.concat(", ", result, facade.getEcology());\r
- //gathering period\r
- //TODO period.toString ??\r
- result = CdmUtils.concat(", ", result, facade.getGatheringPeriod().toString());\r
+ result = CdmUtils.concat("; ", result, exsiccatum);\r
\r
//Herbarium & accession number\r
String code = getCode(facade);\r
String collectionData = CdmUtils.concat(" ", code, facade.getAccessionNumber());\r
- if (CdmUtils.isNotEmpty(collectionData)) {\r
+ if (StringUtils.isNotBlank(collectionData)) {\r
result = (result + " (" + collectionData + ")").trim();\r
}\r
\r
- //plant description\r
- result = CdmUtils.concat("; ", result, facade.getPlantDescription());\r
- if (CdmUtils.isNotEmpty(result)){\r
- result += ".";\r
- }\r
+ //result\r
+ result = fieldStrategy.addPlantDescription(result, facade);\r
+\r
\r
} catch (DerivedUnitFacadeNotSupportedException e) {\r
e.printStackTrace();\r
}\r
\r
\r
-\r
/**\r
* @param facade\r
*/\r
private String getCode(DerivedUnitFacade facade) {\r
- String code = facade.getCollection().getCode();\r
- if (CdmUtils.isEmpty(code)){\r
- Institution institution = facade.getCollection().getInstitute();\r
- if (institution != null){\r
- code = institution.getCode();\r
- }\r
- if (CdmUtils.isEmpty(code)){\r
- Collection superCollection = facade.getCollection().getSuperCollection();\r
- if (superCollection != null){\r
- code = superCollection.getCode();\r
+ String code = "";\r
+ if(facade.getCollection() != null){ \r
+ code = facade.getCollection().getCode();\r
+ if (StringUtils.isBlank(code)){\r
+ Institution institution = facade.getCollection().getInstitute();\r
+ if (institution != null){\r
+ code = institution.getCode();\r
+ }\r
+ if (StringUtils.isBlank(code)){\r
+ Collection superCollection = facade.getCollection().getSuperCollection();\r
+ if (superCollection != null){\r
+ code = superCollection.getCode();\r
+ }\r
}\r
}\r
- }\r
+ } \r
return code;\r
}\r
+ \r
+// ************************** GETTER / SETTER ******************************************************\r
+ \r
+ public boolean isIncludeSeconds() {\r
+ return includeEmptySeconds;\r
+ }\r
+\r
+\r
+\r
+ public void setIncludeSeconds(boolean includeSeconds) {\r
+ this.includeEmptySeconds = includeSeconds;\r
+ }\r
+\r
+\r
+\r
+ public void setIncludeReferenceSystem(boolean includeReferenceSystem) {\r
+ this.includeReferenceSystem = includeReferenceSystem;\r
+ }\r
+\r
+\r
+\r
+ public boolean isIncludeReferenceSystem() {\r
+ return includeReferenceSystem;\r
+ }\r
\r
\r
}\r