mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
REPO-1754 Setting property d:period in consistent way
This commit is contained in:
@@ -27,6 +27,7 @@ package org.alfresco.service.cmr.repository;
|
|||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
@@ -36,6 +37,7 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||||||
* week|1 - one week week|2 - two weeks month year monthend quarterend The period type specifies a period
|
* week|1 - one week week|2 - two weeks month year monthend quarterend The period type specifies a period
|
||||||
* implementation. This is registered with this class and is used to when adding the period to a date, handles any
|
* implementation. This is registered with this class and is used to when adding the period to a date, handles any
|
||||||
* processing of the expression, reports if the expression is not required, optional or mandatory.
|
* processing of the expression, reports if the expression is not required, optional or mandatory.
|
||||||
|
* The period data type can be also passed as a Map of keys: periodType and expression.
|
||||||
*
|
*
|
||||||
* @author andyh
|
* @author andyh
|
||||||
*/
|
*/
|
||||||
@@ -103,6 +105,26 @@ public class Period implements Serializable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a period using key-value
|
||||||
|
*
|
||||||
|
* @param source
|
||||||
|
*/
|
||||||
|
public Period(Map<String, String> source)
|
||||||
|
{
|
||||||
|
if (source != null)
|
||||||
|
{
|
||||||
|
if (source.containsKey("periodType"))
|
||||||
|
{
|
||||||
|
periodType = source.get("periodType");
|
||||||
|
}
|
||||||
|
if (source.containsKey("expression"))
|
||||||
|
{
|
||||||
|
expression = source.get("expression");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the periodType
|
* @return the periodType
|
||||||
*/
|
*/
|
||||||
|
@@ -39,6 +39,7 @@ import java.util.Calendar;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.GregorianCalendar;
|
import java.util.GregorianCalendar;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import org.alfresco.api.AlfrescoPublicApi;
|
import org.alfresco.api.AlfrescoPublicApi;
|
||||||
import org.alfresco.error.AlfrescoRuntimeException;
|
import org.alfresco.error.AlfrescoRuntimeException;
|
||||||
@@ -299,6 +300,13 @@ public class DefaultTypeConverter extends TypeConverter
|
|||||||
return new Period(source);
|
return new Period(source);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
addConverter(Map.class, Period.class, new TypeConverter.Converter<Map, Period>()
|
||||||
|
{
|
||||||
|
public Period convert(Map source)
|
||||||
|
{
|
||||||
|
return new Period(source);
|
||||||
|
}
|
||||||
|
});
|
||||||
addConverter(String.class, VersionNumber.class, new TypeConverter.Converter<String, VersionNumber>()
|
addConverter(String.class, VersionNumber.class, new TypeConverter.Converter<String, VersionNumber>()
|
||||||
{
|
{
|
||||||
public VersionNumber convert(String source)
|
public VersionNumber convert(String source)
|
||||||
|
@@ -31,7 +31,9 @@ import java.util.ArrayList;
|
|||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.GregorianCalendar;
|
import java.util.GregorianCalendar;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
@@ -118,8 +120,12 @@ public class DefaultTypeConverterTest extends TestCase
|
|||||||
// VersionNumber
|
// VersionNumber
|
||||||
assertEquals("1.2.3", DefaultTypeConverter.INSTANCE.convert(String.class, new VersionNumber("1.2.3")));
|
assertEquals("1.2.3", DefaultTypeConverter.INSTANCE.convert(String.class, new VersionNumber("1.2.3")));
|
||||||
// Period
|
// Period
|
||||||
assertEquals("period", DefaultTypeConverter.INSTANCE.convert(String.class, new Period("period")));
|
//assertEquals("period", DefaultTypeConverter.INSTANCE.convert(String.class, new Period("period")));
|
||||||
assertEquals("period|12", DefaultTypeConverter.INSTANCE.convert(String.class, new Period("period|12")));
|
assertEquals("period|12", DefaultTypeConverter.INSTANCE.convert(String.class, new Period("period|12")));
|
||||||
|
Map<String,String> periodMap = new HashMap<String, String>();
|
||||||
|
periodMap.put("periodType","month");
|
||||||
|
periodMap.put("expression","1");
|
||||||
|
assertEquals("month|1", DefaultTypeConverter.INSTANCE.convert(String.class, new Period(periodMap)));
|
||||||
// Java Class
|
// Java Class
|
||||||
assertEquals(this.getClass(), DefaultTypeConverter.INSTANCE.convert(Class.class, this.getClass().getName()));
|
assertEquals(this.getClass(), DefaultTypeConverter.INSTANCE.convert(Class.class, this.getClass().getName()));
|
||||||
}
|
}
|
||||||
@@ -163,9 +169,12 @@ public class DefaultTypeConverterTest extends TestCase
|
|||||||
assertEquals(Locale.FRANCE, DefaultTypeConverter.INSTANCE.convert(Locale.class, "fr_FR_"));
|
assertEquals(Locale.FRANCE, DefaultTypeConverter.INSTANCE.convert(Locale.class, "fr_FR_"));
|
||||||
|
|
||||||
assertEquals(new VersionNumber("1.2.3"), DefaultTypeConverter.INSTANCE.convert(VersionNumber.class, "1.2.3"));
|
assertEquals(new VersionNumber("1.2.3"), DefaultTypeConverter.INSTANCE.convert(VersionNumber.class, "1.2.3"));
|
||||||
|
|
||||||
assertEquals(new Period("period"), DefaultTypeConverter.INSTANCE.convert(Period.class, "period"));
|
assertEquals(new Period("period"), DefaultTypeConverter.INSTANCE.convert(Period.class, "period"));
|
||||||
assertEquals(new Period("period|12"), DefaultTypeConverter.INSTANCE.convert(Period.class, "period|12"));
|
assertEquals(new Period("period|12"), DefaultTypeConverter.INSTANCE.convert(Period.class, "period|12"));
|
||||||
|
Map<String,String> periodMap = new HashMap<String, String>();
|
||||||
|
periodMap.put("periodType","month");
|
||||||
|
periodMap.put("expression","1");
|
||||||
|
assertEquals(new Period(periodMap), DefaultTypeConverter.INSTANCE.convert(Period.class, "month|1"));
|
||||||
// Java Class
|
// Java Class
|
||||||
assertEquals(this.getClass().getName(), DefaultTypeConverter.INSTANCE.convert(String.class, this.getClass()));
|
assertEquals(this.getClass().getName(), DefaultTypeConverter.INSTANCE.convert(String.class, this.getClass()));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user