Android Open Source - DEVIEW2014_AndroidApp_Demo Bundle Mapper






From Project

Back to project page DEVIEW2014_AndroidApp_Demo.

License

The source code is released under:

Apache License

If you think the Android project DEVIEW2014_AndroidApp_Demo listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.nhn.android.deview.core.transfer;
//www.j a  v  a  2s .c  o  m
import java.lang.reflect.Field;
import java.util.Set;

import android.content.Intent;
import android.os.Bundle;

public class BundleMapper {

  boolean toBundle(Object container,Bundle bundle,boolean isAll) {
    Field[] fields = container.getClass().getFields();
    String name;
    for (Field f:fields) {
      
      BundleField ref = f.getAnnotation(BundleField.class);
      String sname = f.getType().getSimpleName();
      if (ref != null) {
        name = ref.name();
      } else {
        name = f.getName();
      }
      
       try {
        if (sname.equals("String") == true) {
          bundle.putString(name, (String) f.get(container));
        } else if (sname.equals("int") == true) {
          bundle.putInt(name, f.getInt(container));        
        } else if (sname.equals("long") == true) {
          bundle.putLong(name, f.getLong(container));
        } else if (sname.equals("float") == true) {
          bundle.putFloat(name, f.getFloat(container));
        } else if (sname.equals("double") == true) {
          bundle.putDouble(name, f.getDouble(container));  
        }
      } catch (Exception e) {
      }
    }
    return false;
  }
  
  public static boolean fromBundle(Object container,Bundle bundle) {
    if (bundle == null) {
      return false;
    }
    
    Set<String> keys =  bundle.keySet();
    Class<?> cls = container.getClass();
    for (String key:keys) {
      try {
        Field field = cls.getField(key);
        field.setAccessible(true);
        BundleField ref = field.getAnnotation(BundleField.class);
        if (ref != null) {
          if (cls.isPrimitive() == true) {
            String sname = field.getType().getSimpleName();
            if (sname.equals("int") == true) {
              field.setInt(container, bundle.getInt(key));
            } else if (sname.equals("float") == true) {
              field.setFloat(container, bundle.getFloat(key));
            } else {
              return false;
            }
            return true;
          } else {
            Object value = bundle.get(key);
            field.set(container, value);
          }
        }
      } catch (NoSuchFieldException e) {
      } catch (Exception e) {
        e.printStackTrace();
      }
      
    }
    
    return false;
  }
    
  public static boolean fromIntent(Object container,Intent intent) {
    //Uri uri = getData();
    if (intent == null) {
      return false;
    }
    
    return fromBundle(container,intent.getExtras());
  }
}




Java Source Code List

com.nhn.android.deview.AppContext.java
com.nhn.android.deview.AppTable.java
com.nhn.android.deview.DeViewApplication.java
com.nhn.android.deview.DeviewSchemeActivity.java
com.nhn.android.deview.MainDB.java
com.nhn.android.deview.ThreadWorker.java
com.nhn.android.deview.core.connector.DataConnectorListener.java
com.nhn.android.deview.core.connector.DataDoc.java
com.nhn.android.deview.core.connector.DataField.java
com.nhn.android.deview.core.connector.DataSet.java
com.nhn.android.deview.core.connector.DefaultDataConnector.java
com.nhn.android.deview.core.db.CursorReader.java
com.nhn.android.deview.core.db.DbTable.java
com.nhn.android.deview.core.lifecycle.CycleBaseLayout.java
com.nhn.android.deview.core.lifecycle.CycleControllable.java
com.nhn.android.deview.core.lifecycle.CycleControllerActivity.java
com.nhn.android.deview.core.lifecycle.CycleController.java
com.nhn.android.deview.core.lifecycle.CycleFragment.java
com.nhn.android.deview.core.listview.ListCellViewAdapter.java
com.nhn.android.deview.core.listview.ListCellView.java
com.nhn.android.deview.core.listview.PageViewPagerAdapter.java
com.nhn.android.deview.core.listview.PageView.java
com.nhn.android.deview.core.pager.SimplePagerAdapter.java
com.nhn.android.deview.core.transfer.BundleField.java
com.nhn.android.deview.core.transfer.BundleMapper.java
com.nhn.android.deview.core.transfer.IntentUri.java
com.nhn.android.deview.core.transfer.UriObject.java
com.nhn.android.deview.core.view.DeclareView.java
com.nhn.android.deview.core.view.ViewMapper.java
com.nhn.android.deview.dao.DeviewUri.java
com.nhn.android.deview.dao.MyMemoManager.java
com.nhn.android.deview.dao.MyMemo.java
com.nhn.android.deview.dao.MySchedule.java
com.nhn.android.deview.dao.program.ProgramData.java
com.nhn.android.deview.dao.program.ProgramListConnector.java
com.nhn.android.deview.dao.program.ProgramListDoc.java
com.nhn.android.deview.dao.program.ProgramManager.java
com.nhn.android.deview.dao.program.ProgramTrack.java
com.nhn.android.deview.dao.program.TrackListConnector.java
com.nhn.android.deview.ui.main.MainActivity.java
com.nhn.android.deview.ui.main.ProgramCellView.java
com.nhn.android.deview.ui.main.ProgramPageView.java
com.nhn.android.deview.ui.note.MemoCellView.java
com.nhn.android.deview.ui.note.MemoListActivity.java
com.nhn.android.deview.ui.note.MemoRecorder.java
com.nhn.android.deview.ui.note.MyScheduleActivity.java
com.nhn.android.deview.webviewer.MemoWebToolbar.java
com.nhn.android.deview.webviewer.ProgramWebActivity.java
com.nhn.android.deview.webviewer.WebPageView.java