1
2
3
4
5
6 package org.weda.property.impl;
7
8 import java.util.Arrays;
9 import java.util.List;
10 import org.weda.message.Messages;
11 import org.weda.message.MessagesProvider;
12 import org.weda.message.impl.AbstractMessagesProvider;
13 import org.weda.message.impl.MessagesSubset;
14 import org.weda.property.ObjectDescriptorRegistry;
15 import org.weda.property.PosibleValue;
16 import org.weda.property.PropertyDescriptor;
17
18 /**
19 *
20 * @author Mikhail Titov
21 */
22 public class ObjectDescriptorMessagesProvider extends AbstractMessagesProvider {
23 private final static Class[] SUPPORTED_CLASSES =
24 new Class[]{
25 PropertyDescriptorImpl.class
26 , ObjectDescriptor.class
27 , ObjectDescriptorRegistry.class
28 , PosibleValueImpl.class};
29
30 public Messages getMessagesForObject(Object obj) {
31 if (obj instanceof PropertyDescriptor) {
32 return getMessagesForPropertyDescriptor(obj);
33 }else if (obj instanceof ObjectDescriptor){
34 ObjectDescriptor objDesc = (ObjectDescriptor)obj;
35 return new MessagesSubset(
36 getCategoryMessages()
37 , objDesc.getObjectClass().getName());
38 }else if (obj instanceof ObjectDescriptorRegistry){
39 return getCategoryMessages();
40 }else if (obj instanceof PosibleValue){
41 PosibleValue posValue = (PosibleValue)obj;
42 Messages propMessages =
43 getMessagesForPropertyDescriptor(
44 posValue.getPropertyDescriptor());
45 return new MessagesSubset(propMessages, "..");
46 }
47 return null;
48 }
49
50 private Messages getMessagesForPropertyDescriptor(Object propDesc){
51 PropertyDescriptor desc = (PropertyDescriptor)propDesc;
52 Messages subset =
53 new MessagesSubset(
54 getCategoryMessages()
55 , desc.getObjectClass()==null?
56 "null" : desc.getObjectClass().getName());
57 return new MessagesSubset(subset, desc.getName());
58 }
59
60 public Class[] getSupportedClasses() {
61 return SUPPORTED_CLASSES;
62 }
63
64 }