亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bruteforcepropertydescriptor.java

?? 一個javabean的轉換與copy非常的好用希望大家好好研究一下
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:

  protected void writeDeepDestinationValue(Object destObj, Object destFieldValue, Hint destHint, ClassMap classMap)
      throws IllegalAccessException, InvocationTargetException, InstantiationException, ClassNotFoundException,
      NoSuchMethodException, NoSuchFieldException {
    // follow deep field hierarchy. If any values are null along the way, then create a new instance
    PropertyDescriptor[] hierarchy = getHierarchy(destObj);
    // first, iteratate through hierarchy and instantiate any objects that are null
    Object parentObj = destObj;
    int hierarchyLength = hierarchy.length - 1;
    for (int i = 0; i < hierarchyLength; i++) {
      PropertyDescriptor pd = hierarchy[i];
      Object value = pd.getReadMethod().invoke(parentObj, null);
      Class clazz = null;
      if (value == null) {
        clazz = pd.getPropertyType();
        if (clazz.isInterface()) {
          // before setting the property on the destination object we should check for a destination hint. need to know
          // that we are at the end of the line
          if ((i + 1) == hierarchyLength) {
            // determine the property type
            if (destHint != null) {
              clazz = destHint.getHint();
            }
          }
        }
        Object o;
        try {
          o = clazz.newInstance();
          pd.getWriteMethod().invoke(parentObj, new Object[] { o });
        } catch (InstantiationException e) {
          // lets see if they have a factory we can try. If not...throw the exception:
          if (classMap.getDestClass().getBeanFactory() != null) {
            o = destBeanCreator.createFromFactory(null, classMap.getSourceClass().getClassToMap(), classMap
                .getDestClass().getBeanFactory(), classMap.getDestClass().getFactoryBeanId(), clazz);
            pd.getWriteMethod().invoke(parentObj, new Object[] { o });
          } else {
            throw e;
          }
        }
        value = pd.getReadMethod().invoke(parentObj, null);
      }
      parentObj = value;
    }
    // second, set deep field value
    PropertyDescriptor pd = hierarchy[hierarchy.length - 1];
    if (pd.getReadMethod().getReturnType().isPrimitive() && destFieldValue == null) {
    } else {
      if (!field.isIndexed()) {
        Method method = pd.getWriteMethod();
        if(method == null && field.getTheSetMethod() != null) {
          // lets see if we can find a custom method
          method = findAMethod(parentObj.getClass(), field.getTheSetMethod());
        }
        method.invoke(parentObj, new Object[] { destFieldValue });
      } else {
        writeIndexedValue(pd, parentObj, destFieldValue);
      }
    }
  }

  protected PropertyDescriptor[] getHierarchy(Object obj) {
    if (hierarchy == null) {
      hierarchy = reflectionUtils.getDeepFieldHierarchy(obj.getClass(), field.getName());
    }
    return hierarchy;
  }

  public String getReadMethodName() {
    if (readMethod != null) {
      return readMethod.getName();
    } else {
      try {
        readMethod = getReadMethod(clazz);
      } catch (MappingException e) {
        log.debug("Can't find read method for class:" + clazz + " and field:" + field.getName());
        return "NoReadMethodFound";
      }
      return readMethod.getName();
    }
  }

  public String getWriteMethodName() {
    if (writeMethod != null) {
      return writeMethod.getName();
    } else {
      writeMethod = getWriteMethod();
      return writeMethod.getName();
    }
  }

  public Method getReadMethod() {
    return getReadMethod(clazz);
  }

  protected Method getReadMethod(Class bean) {
    if (readMethod == null || !readMethod.getDeclaringClass().isAssignableFrom(bean)) {
      if (field.getTheGetMethod() == null) {
        readMethod = getReadMethod(clazz, field.getName());
      } else {
        try {
          readMethod = findAMethod(clazz, field.getTheGetMethod());
        } catch (Exception e) {
          throw new MappingException(e);
        }
      }
    }
    return readMethod;
  }

  public Method getWriteMethod() {
    if (writeMethod == null || !writeMethod.getDeclaringClass().isAssignableFrom(clazz)) {
      if (field.getTheSetMethod() == null || field.getName().indexOf(MapperConstants.DEEP_FIELD_DELIMITOR) > 0) {
        writeMethod = getWriteMethod(clazz, field.getName());
      } else {
        try {
          writeMethod = findAMethod(clazz, field.getTheSetMethod());
        } catch (Exception e) {
          throw new MappingException(e);
        }
      }
    }
    return writeMethod;
  }

  protected Object getValueOfIndexedField(Object object, int index) {
    if (object instanceof Collection) {
      Collection c = (Collection) object;
      if ((c != null) && (index > -1) && (index < c.size())) {
        Iterator iter = c.iterator();
        for (int x = 0; x < index; x++) {
          iter.next();
        }
        return iter.next();
      } else {
        return null;
      }
    } else if (object instanceof Object[]) {
      Object[] objs = (Object[]) object;
      if ((objs != null) && (index > -1) && (index < objs.length)) {
        return objs[index];
      } else {
        return null;
      }
    } else {
      return null;
    }
  }

  protected void writeIndexedValue(PropertyDescriptor pd, Object destObj, Object destFieldValue)
      throws IllegalAccessException, InvocationTargetException, NoSuchMethodException, ClassNotFoundException,
      NoSuchFieldException {
    int index = field.getIndex();
    Object o = getReadMethod().invoke(destObj, null);
    if (o == null) {
      Class returnType = getPropertyType();
      if (returnType.isArray()) {
        o = Array.newInstance(returnType.getComponentType(), 1);
      } else if (collectionUtils.isSet(returnType)) {
        o = new HashSet();
      } else { // default
        o = new ArrayList();
      }
    }
    if (o instanceof Collection) {
      Collection newCollection;
      if (o instanceof Set) {
        newCollection = new HashSet();
      } else {
        newCollection = new ArrayList();
      }

      Collection c = (Collection) o;
      Iterator i = c.iterator();
      int x = 0;
      while (i.hasNext()) {
        if (x != index) {
          newCollection.add(i.next());
        } else {
          newCollection.add(destFieldValue);
        }
        x++;
      }
      if (newCollection.size() <= index) {
        while (newCollection.size() < index) {
          newCollection.add(null);
        }
        newCollection.add(destFieldValue);
      }
      getWriteMethod().invoke(destObj, new Object[] { newCollection });
    } else if (o.getClass().isArray()) {
      Object[] objs = (Object[]) o;
      Object[] x = (Object[]) Array.newInstance(objs.getClass().getComponentType(),
          objs.length > index ? objs.length + 1 : index + 1);
      for (int i = 0; i < objs.length; i++) {
        x[i] = objs[i];
      }
      x[index] = destFieldValue;

      if (pd == null) {
        getWriteMethod().invoke(destObj, new Object[] { x });
      } else {
        pd.getWriteMethod().invoke(destObj, new Object[] { x });
      }
    }
  }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合久久综合九色| 国产老妇另类xxxxx| 欧洲激情一区二区| 亚洲一区二区高清| 91精品免费在线观看| 日本亚洲电影天堂| 精品国产伦一区二区三区免费| 日日摸夜夜添夜夜添亚洲女人| 91精品国产综合久久精品| 丝袜脚交一区二区| 2014亚洲片线观看视频免费| 国产美女精品在线| 国产精品色眯眯| 欧美在线观看18| 日韩不卡手机在线v区| 久久噜噜亚洲综合| 色综合久久久久久久| 日欧美一区二区| 久久亚洲精品国产精品紫薇| 成人一道本在线| 一区二区三区在线视频播放| 欧美一二三四在线| 东方欧美亚洲色图在线| 亚洲综合图片区| 欧美草草影院在线视频| av动漫一区二区| 日本不卡在线视频| 日韩一区中文字幕| 日韩精品一区二区三区视频| 波多野结衣亚洲| 日本亚洲电影天堂| 亚洲男帅同性gay1069| 日韩午夜精品电影| 色哦色哦哦色天天综合| 久久99国产精品免费| 国产精品国产精品国产专区不蜜 | 亚洲国产成人av| 久久综合九色综合97婷婷| 91免费观看视频| 色中色一区二区| 免费人成精品欧美精品 | 日韩欧美电影一区| 91成人国产精品| 国内精品免费在线观看| 亚洲一卡二卡三卡四卡无卡久久| 久久人人97超碰com| 欧美美女直播网站| 91精品办公室少妇高潮对白| 国产精品69毛片高清亚洲| 天天做天天摸天天爽国产一区| 国产精品不卡在线| 久久久久久久久久久久电影| 欧美性猛交xxxxxxxx| www.日韩av| 国产91露脸合集magnet| 青椒成人免费视频| 亚洲成人手机在线| 亚洲视频一区二区在线| 国产三级欧美三级| 精品国精品自拍自在线| 在线播放91灌醉迷j高跟美女 | 91精品久久久久久久91蜜桃| 99精品视频在线播放观看| 国产一区二区三区免费观看| 免费不卡在线观看| 日韩精品电影一区亚洲| 亚洲成av人片一区二区| 亚洲一区二区三区四区五区中文| 成人欧美一区二区三区| 国产精品久久久久久久久动漫| 国产欧美视频在线观看| 久久嫩草精品久久久久| 久久久欧美精品sm网站| 久久免费视频色| 久久久蜜桃精品| 久久亚洲精品国产精品紫薇| 久久色中文字幕| 国产欧美日韩一区二区三区在线观看 | 一区二区三区电影在线播| 中文欧美字幕免费| 国产精品国产三级国产a| 国产精品伦理一区二区| 亚洲欧洲国产日韩| 怡红院av一区二区三区| 一区二区久久久久| 婷婷综合五月天| 日精品一区二区| 毛片av中文字幕一区二区| 美女脱光内衣内裤视频久久影院| 蜜桃一区二区三区在线| 精品写真视频在线观看| 国产精品资源在线| 丁香五精品蜜臀久久久久99网站| eeuss影院一区二区三区| 一本高清dvd不卡在线观看| 欧美日韩综合不卡| 日韩欧美的一区| 国产午夜亚洲精品理论片色戒 | 亚洲欧美一区二区视频| 尤物在线观看一区| 天天色综合天天| 国产一区二区三区久久久| 97精品视频在线观看自产线路二| 色嗨嗨av一区二区三区| 欧美一区二区三区爱爱| 日本一区二区视频在线| 亚洲午夜电影网| 欧美日韩在线三级| 日韩欧美国产小视频| 中文字幕在线视频一区| 午夜电影网亚洲视频| 国产专区欧美精品| 日本韩国精品在线| 精品欧美一区二区三区精品久久| 国产精品拍天天在线| 亚州成人在线电影| 成人av网站在线观看| 6080日韩午夜伦伦午夜伦| 亚洲国产精品成人综合色在线婷婷| 亚洲综合999| 国内国产精品久久| 欧美日韩在线三区| 国产日产欧美精品一区二区三区| 亚洲超碰97人人做人人爱| 国产盗摄一区二区三区| 欧美区一区二区三区| 中文字幕乱码日本亚洲一区二区 | 亚洲精品美国一| 久久成人免费网站| 欧美亚洲图片小说| 国产精品久久网站| 精品综合免费视频观看| 欧美色窝79yyyycom| 国产日本亚洲高清| 久久精品国产澳门| 欧美日韩一区二区三区不卡| 国产日韩v精品一区二区| 日本欧美在线看| 日本福利一区二区| 中文字幕中文乱码欧美一区二区| 美女网站视频久久| 欧美日韩一区视频| 亚洲品质自拍视频| 成人永久看片免费视频天堂| 日韩一区二区视频在线观看| 一区二区激情视频| 99精品视频中文字幕| 国产欧美一区二区精品久导航 | 欧美亚洲免费在线一区| 欧美国产欧美亚州国产日韩mv天天看完整 | 国产精品色在线观看| 国产一区视频网站| 欧美大片国产精品| 青青草91视频| 欧美一级理论性理论a| 亚洲bdsm女犯bdsm网站| 在线免费亚洲电影| 亚洲欧美日韩国产综合| 成人小视频免费在线观看| 亚洲精品在线三区| 久久狠狠亚洲综合| 日韩精品自拍偷拍| 久久成人免费网| 精品欧美黑人一区二区三区| 老司机精品视频一区二区三区| 91麻豆精品91久久久久同性| 午夜视频在线观看一区二区| 欧美午夜影院一区| 亚洲电影在线播放| 欧美人成免费网站| 视频在线在亚洲| 欧美日韩亚洲国产综合| 亚洲bt欧美bt精品777| 欧美精品一级二级三级| 一本一本大道香蕉久在线精品| 日本一区二区动态图| www.日本不卡| 洋洋av久久久久久久一区| 欧美吞精做爰啪啪高潮| 天天综合网 天天综合色| 91精品一区二区三区久久久久久| 青青草国产精品亚洲专区无| 精品国产一区久久| 国产91露脸合集magnet| 一区二区中文字幕在线| 欧美影院一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 奇米在线7777在线精品| 日韩免费视频一区二区| 国产成人精品亚洲日本在线桃色| 欧美激情综合在线| 色婷婷久久99综合精品jk白丝| 午夜精品在线视频一区| 日韩精品一区二| 不卡一区二区在线| 亚洲国产视频一区| 久久精品一区二区三区不卡 | 国内成人免费视频| 亚洲色图欧洲色图婷婷| 欧美精品 日韩|