001: /*
002: * JFolder, Copyright 2001-2006 Gary Steinmetz
003: *
004: * Distributable under LGPL license.
005: * See terms of license at gnu.org.
006: */
007:
008: package org.jfolder.common.function.v1;
009:
010: //base classes
011: import java.math.BigDecimal;
012: import java.util.Calendar;
013: import java.util.Date;
014: import java.util.GregorianCalendar;
015:
016: //project specific classes
017: import org.jfolder.common.SelfArgumentlessConstructor;
018: import org.jfolder.common.StandardDataTypes;
019: import org.jfolder.common.function.BaseCommonFunctionCompatibilityTag;
020: import org.jfolder.common.function.WebPageTagInstanceViewContext;
021: import org.jfolder.common.function.WebPageTagInstanceViewContextInfo;
022: import org.jfolder.common.tagging.AppraiseConceptTagContext;
023: import org.jfolder.common.tagging.ConceptTagCharacteristic;
024: import org.jfolder.common.tagging.ConceptTagConstraint;
025: import org.jfolder.common.tagging.ConceptTagConstraintHolder;
026: import org.jfolder.common.tagging.ConceptTagFlagsHelper;
027: import org.jfolder.common.tagging.DetermineClassConceptTagContext;
028: import org.jfolder.common.tagging.DetermineValueAndClassConceptTagContext;
029: import org.jfolder.common.tagging.DetermineValueAndClassConceptTagException;
030: import org.jfolder.common.tagging.InitializeConceptTagContext;
031: import org.jfolder.common.tagging.SelectionCriteriaForReturnableConceptTag;
032: import org.jfolder.common.tagging.StaticConceptTagConstraintContext;
033: import org.jfolder.common.tagging.StudioConceptTagCreParInfoContext;
034: import org.jfolder.common.tagging.StudioConceptTagInstanceInfoContext;
035: import org.jfolder.common.tagging.StudioConceptTagTypeInfoContext;
036: import org.jfolder.common.tagging.ValueAndClassForConceptTag;
037: import org.jfolder.common.utils.misc.MiscHelper;
038:
039: //other classes
040:
041: public class CommonFunctionTimeCurrentDayTag extends
042: BaseCommonFunctionCompatibilityTag implements
043: SelfArgumentlessConstructor {
044:
045: public void initialize(InitializeConceptTagContext inIctc) {
046:
047: //
048: ConceptTagConstraintHolder rootCtconh = ConceptTagConstraintHolder
049: .newInstance(inIctc);
050: //
051:
052: //
053: ConceptTagFlagsHelper
054: .pushNonIterativeCommonFunctionDepth(inIctc);
055: inIctc.initialize();
056: ConceptTagFlagsHelper
057: .popNonIterativeCommonFunctionDepth(inIctc);
058: }
059:
060: public void appraise(AppraiseConceptTagContext inActc) {
061:
062: if (inActc instanceof StudioConceptTagInstanceInfoContext) {
063:
064: StudioConceptTagInstanceInfoContext sctiic = (StudioConceptTagInstanceInfoContext) inActc;
065:
066: sctiic.setInstanceTitle("Current Day As Number");
067: sctiic.setInstanceDescription("Current Day As Number");
068: } else if (inActc instanceof StudioConceptTagTypeInfoContext) {
069:
070: StudioConceptTagTypeInfoContext scttic = (StudioConceptTagTypeInfoContext) inActc;
071:
072: scttic.setTypeTitle("Current Day As Number");
073: scttic.setTypeDescription("Current Day As Number");
074: } else if (inActc instanceof WebPageTagInstanceViewContext) {
075:
076: WebPageTagInstanceViewContext wptivc = (WebPageTagInstanceViewContext) inActc;
077:
078: //
079: WebPageTagInstanceViewContextInfo info = wptivc
080: .getInfoAsNonHtml();
081: info.setNonHtmlContent("getCurrentDayAsNumber()");
082: //wptivc.appendContent();
083: } else if (inActc instanceof SelectionCriteriaForReturnableConceptTag) {
084:
085: SelectionCriteriaForReturnableConceptTag scfrct = (SelectionCriteriaForReturnableConceptTag) inActc;
086:
087: scfrct.canReturnDecimal();
088: scfrct.declareFormatAsPlain();
089: } else if (inActc instanceof StudioConceptTagCreParInfoContext) {
090:
091: StudioConceptTagCreParInfoContext scpc = (StudioConceptTagCreParInfoContext) inActc;
092: }
093: }
094:
095: public void determineValueAndClass(
096: DetermineValueAndClassConceptTagContext inDvacctc) {
097:
098: ValueAndClassForConceptTag vacfct = null;
099:
100: //
101: Date modifiedDate = new Date();
102: GregorianCalendar gc = new GregorianCalendar();
103: gc.setTime(modifiedDate);
104: //
105: int year = gc.get(Calendar.YEAR);
106: int month = gc.get(Calendar.MONTH);
107: int day = gc.get(Calendar.DAY_OF_MONTH);
108: int hour = gc.get(Calendar.HOUR);
109: int minute = gc.get(Calendar.MINUTE);
110: int second = gc.get(Calendar.SECOND);
111: int amPm = gc.get(Calendar.AM_PM);
112:
113: vacfct = ValueAndClassForConceptTag.newDecimal(new BigDecimal(
114: day));
115:
116: inDvacctc.setDetermineValueAndClass(vacfct);
117: }
118:
119: public void determineClass(DetermineClassConceptTagContext inDcctc) {
120:
121: inDcctc.setDetermineClass(StandardDataTypes.getDecimalClass());
122: }
123:
124: public Object createUninitializedSelf() {
125: return new CommonFunctionTimeCurrentDayTag();
126: }
127: }
|