1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.joda.beans.impl;
17
18 import java.util.NoSuchElementException;
19
20 import org.joda.beans.Bean;
21 import org.joda.beans.MetaBean;
22 import org.joda.beans.MetaProperty;
23 import org.joda.beans.PropertyMap;
24
25
26
27
28
29
30 public abstract class BasicMetaBean implements MetaBean {
31
32 @Override
33 public PropertyMap createPropertyMap(Bean bean) {
34 return BasicPropertyMap.of(bean);
35 }
36
37 @Override
38 public String beanName() {
39 return beanType().getName();
40 }
41
42 @Override
43 public int metaPropertyCount() {
44 return metaPropertyMap().size();
45 }
46
47 @Override
48 public boolean metaPropertyExists(String propertyName) {
49 return metaPropertyMap().containsKey(propertyName);
50 }
51
52 @SuppressWarnings("unchecked")
53 @Override
54 public <R> MetaProperty<R> metaProperty(String propertyName) {
55 MetaProperty<?> mp = metaPropertyMap().get(propertyName);
56 if (mp == null) {
57 throw new NoSuchElementException("Unknown property: " + propertyName);
58 }
59 return (MetaProperty<R>) mp;
60 }
61
62 @Override
63 public Iterable<MetaProperty<?>> metaPropertyIterable() {
64 return metaPropertyMap().values();
65 }
66
67
68
69
70
71
72
73 @Override
74 public String toString() {
75 return "MetaBean:" + beanType().getSimpleName();
76 }
77
78 }