Search in sources :

Example 1 with Annotation

use of mondrian.olap.Annotation in project pentaho-platform by pentaho.

the class InlineMemberFormatter method formatMember.

@Override
public String formatMember(Member member) {
    Annotation annot = member.getLevel().getAnnotationMap().get(FORMAT_STRING);
    if (annot == null) {
        throw new IllegalStateException("Missing InlineMemberFormatString on level " + member.getLevel().getUniqueName());
    }
    Object key = member.getPropertyValue(Property.KEY.getName());
    Format format = Format.get(annot.getValue().toString(), Locale.getDefault());
    return format.format(key);
}
Also used : Format(mondrian.util.Format) Annotation(mondrian.olap.Annotation)

Example 2 with Annotation

use of mondrian.olap.Annotation in project pentaho-platform by pentaho.

the class InlineMemberFormatterTest method testFormatMember.

@Test
public void testFormatMember() {
    Level level = mock(Level.class);
    Member member = mock(Member.class);
    when(member.getLevel()).thenReturn(level);
    when(member.getPropertyValue(Property.KEY.getName())).thenReturn((new GregorianCalendar(1997, 0, 2).getTime()));
    InlineMemberFormatter formatter = new InlineMemberFormatter();
    try {
        formatter.formatMember(member);
        fail();
    } catch (IllegalStateException execption) {
    // pass
    }
    Annotation annotation = mock(Annotation.class);
    when(annotation.getValue()).thenReturn(FORMAT);
    Map<String, Annotation> annotationMap = new HashMap<>();
    annotationMap.put(InlineMemberFormatter.FORMAT_STRING, annotation);
    when(level.getAnnotationMap()).thenReturn(annotationMap);
    String formatterMember = formatter.formatMember(member);
    System.out.println(formatterMember);
    assertEquals("1997-01-02", formatterMember);
}
Also used : HashMap(java.util.HashMap) GregorianCalendar(java.util.GregorianCalendar) Level(mondrian.olap.Level) Member(mondrian.olap.Member) Annotation(mondrian.olap.Annotation) Test(org.junit.Test)

Aggregations

Annotation (mondrian.olap.Annotation)2 GregorianCalendar (java.util.GregorianCalendar)1 HashMap (java.util.HashMap)1 Level (mondrian.olap.Level)1 Member (mondrian.olap.Member)1 Format (mondrian.util.Format)1 Test (org.junit.Test)1