
com.wangjiegulu.rapidooo.library.compiler.oooentry.OOOEntry Maven / Gradle / Ivy
package com.wangjiegulu.rapidooo.library.compiler.oooentry;
import com.google.auto.common.MoreElements;
import com.google.auto.common.MoreTypes;
import com.squareup.javapoet.ClassName;
import com.squareup.javapoet.TypeName;
import com.wangjiegulu.rapidooo.api.OOO;
import com.wangjiegulu.rapidooo.api.OOOConversion;
import com.wangjiegulu.rapidooo.library.compiler.RapidOOOConstants;
import com.wangjiegulu.rapidooo.library.compiler.exception.RapidOOOCompileException;
import com.wangjiegulu.rapidooo.library.compiler.util.AnnoUtil;
import com.wangjiegulu.rapidooo.library.compiler.util.EasyType;
import com.wangjiegulu.rapidooo.library.compiler.util.ElementUtil;
import com.wangjiegulu.rapidooo.library.compiler.util.LogUtil;
import com.wangjiegulu.rapidooo.library.compiler.util.TextUtil;
import com.wangjiegulu.rapidooo.library.compiler.util.func.Func0R;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.lang.model.element.Element;
import javax.lang.model.element.ElementKind;
import javax.lang.model.element.Modifier;
import javax.lang.model.type.TypeMirror;
/**
* Author: wangjie Email: [email protected] Date: 2019-06-12.
*/
public class OOOEntry {
private OOOSEntry ooosEntry;
private OOO ooo;
private String id;
private String fromSuffix;
private String suffix;
private TypeMirror from;
private Element fromElement;
private ClassName fromClassName;
private TypeName fromTypeName;
private String fromSimpleName;
private List includes = new ArrayList<>();
private List excludes = new ArrayList<>();
private TypeName targetSupperType;
private String targetSupperTypeId = com.wangjiegulu.rapidooo.api.OOOConstants.NOT_SET;
private OOOPoolEntry pool;
// private List conversions = new ArrayList<>();
private HashMap conversions = new LinkedHashMap<>();
private String targetClassPackage;
private String targetClassSimpleName;
private TypeName targetClassType;
private boolean parcelable = true;
private HashMap allFromFields = new LinkedHashMap<>();
private HashMap allContinuingFields = new LinkedHashMap<>();
private HashMap supportedInterfaces = new LinkedHashMap<>();
/**
* 显式配置
*/
public OOOEntry(OOOSEntry ooosEntry, final OOO ooo) {
this.ooosEntry = ooosEntry;
this.ooo = ooo;
id = ooo.id();
// 缓存 id
if (!AnnoUtil.oooParamIsNotSet(id)) {
ooosEntry.addTypeIds(id, this);
}
String _fromSuffix = ooo.fromSuffix();
fromSuffix = AnnoUtil.oooParamIsNotSet(_fromSuffix) ? ooosEntry.getFromSuffix() : _fromSuffix;
String _suffix = ooo.suffix();
suffix = AnnoUtil.oooParamIsNotSet(_suffix) ? ooosEntry.getSuffix() : _suffix;
from = AnnoUtil.getType(new Func0R
© 2015 - 2025 Weber Informatics LLC | Privacy Policy