88
99import java .util .ArrayList ;
1010import java .util .LinkedHashMap ;
11+ import java .util .List ;
1112
1213/**
1314 * Data auto access<br>
@@ -70,8 +71,8 @@ public static void getData(Object targetObject, Bundle dataStore) {
7071 return ;
7172 }
7273
73- DataAccessor <Object > dataAccessor = getDataAccessor (targetObject , dataStore );
74- if ( dataAccessor != null ) {
74+ List < DataAccessor <Object >> dataAccessors = getDataAccessors (targetObject );
75+ for ( DataAccessor < Object > dataAccessor : dataAccessors ) {
7576 dataAccessor .getData (targetObject , dataStore );
7677 }
7778 }
@@ -87,16 +88,30 @@ public static void saveData(Object targetObject, Bundle dataStore) {
8788 return ;
8889 }
8990
90- DataAccessor <Object > dataAccessor = getDataAccessor (targetObject , dataStore );
91- if ( dataAccessor != null ) {
91+ List < DataAccessor <Object >> dataAccessors = getDataAccessors (targetObject );
92+ for ( DataAccessor < Object > dataAccessor : dataAccessors ) {
9293 dataAccessor .saveData (targetObject , dataStore );
9394 }
9495 }
9596
96- private static DataAccessor <Object > getDataAccessor (Object targetObject , Bundle dataStore ) {
97+ private static List <DataAccessor <Object >> getDataAccessors (Object targetObject ) {
98+ List <DataAccessor <Object >> dataAccessors = new ArrayList <>();
9799 Class <?> targetClass = targetObject .getClass ();
100+ getDataAccessors (dataAccessors , targetClass );
101+ return dataAccessors ;
102+ }
103+
104+ private static List <DataAccessor <Object >> getDataAccessors (
105+ List <DataAccessor <Object >> dataAccessors , Class <?> targetClass ) {
98106 String className = targetClass .getName () + SUFFIX ;
99- return getDataAccessor (className );
107+ DataAccessor <Object > dataAccessor = getDataAccessor (className );
108+ if (dataAccessor != null ){
109+ dataAccessors .add (dataAccessor );
110+ }
111+ if (targetClass .getSuperclass () != null ){
112+ getDataAccessors (dataAccessors , targetClass .getSuperclass ());
113+ }
114+ return dataAccessors ;
100115 }
101116
102117 private static DataAccessor <Object > getDataAccessor (String className ) {
0 commit comments