use of org.hibernate.eclipse.jdt.ui.internal.jpa.common.RefFieldInfo in project jbosstools-hibernate by jbosstools.
the class ResolveAmbiguous method updateEditorRel.
public void updateEditorRel(TableItem item) {
// Clean up any previous editor control
Control oldEditorRel = editorRel.getEditor();
if (oldEditorRel != null) {
oldEditorRel.dispose();
}
CCombo comboRel = new CCombo(table, SWT.NONE);
comboRel.setEditable(false);
Color bkgnd = table.getBackground();
comboRel.setBackground(bkgnd);
comboRel.add(JdtUiMessages.ResolveAmbiguous_empty);
String fullyQualifiedName = item.getText(0);
RefEntityInfo rei = (RefEntityInfo) item.getData();
Set<RefFieldInfo> setRefEntityInfo = findRelatedRefFieldInfos(fullyQualifiedName, rei);
Iterator<RefFieldInfo> itTmp = setRefEntityInfo.iterator();
while (itTmp.hasNext()) {
RefFieldInfo rfi = itTmp.next();
comboRel.add(rfi.fieldId);
}
if (null != rei.mappedBy) {
comboRel.setText(rei.mappedBy);
} else {
comboRel.setText(JdtUiMessages.ResolveAmbiguous_empty);
}
comboRel.addModifyListener(editorRelModifyListener);
// comboRel.selectAll();
// comboRel.setFocus();
editorRel.setEditor(comboRel, item, COLUMN_RELATED);
}
use of org.hibernate.eclipse.jdt.ui.internal.jpa.common.RefFieldInfo in project jbosstools-hibernate by jbosstools.
the class ResolveAmbiguous method findRelatedRefFieldInfos.
protected Set<RefFieldInfo> findRelatedRefFieldInfos(String fullyQualifiedName, RefEntityInfo rei) {
String fullyQualifiedName2 = rei.fullyQualifiedName;
EntityInfo entryInfo2 = data.getEntities().get(fullyQualifiedName2);
Set<RefFieldInfo> setRefEntityInfo = entryInfo2.getRefFieldInfoSet(fullyQualifiedName);
return setRefEntityInfo;
}
use of org.hibernate.eclipse.jdt.ui.internal.jpa.common.RefFieldInfo in project jbosstools-hibernate by jbosstools.
the class ProcessEntityInfo method visit.
@SuppressWarnings("unchecked")
public boolean visit(MethodDeclaration node) {
if (entityInfo == null) {
return false;
}
if (annotationStyle != AnnotStyle.GETTERS) {
return true;
}
if (node.getName().getFullyQualifiedName().compareTo(entityInfo.getName()) == 0 || node.isConstructor()) {
// this is constructor declaration
return true;
}
// -) is it setter?
if (// $NON-NLS-1$
node.getName().getIdentifier().startsWith("set") && node.parameters().size() == 1) {
// setter - do not process it
return true;
}
// +) is it getter?
if (!(// $NON-NLS-1$
node.getName().getIdentifier().startsWith("get") || // $NON-NLS-1$
node.getName().getIdentifier().startsWith("is")) || node.parameters().size() > 0) {
// not the getter - do not process it
return true;
}
Type type = node.getReturnType2();
if (type == null) {
return true;
}
String returnIdentifier = CollectEntityInfo.getReturnIdentifier(node);
if (type.isSimpleType() || type.isPrimitiveType()) {
if (entityInfo.isAddGeneratedValueFlag()) {
String primaryIdName = entityInfo.getPrimaryIdName();
boolean addGeneratedValueMarker = false;
if (primaryIdName.equals(returnIdentifier)) {
addGeneratedValueMarker = true;
}
if (addGeneratedValueMarker) {
MarkerAnnotation matd = rewriter.getAST().newMarkerAnnotation();
matd.setTypeName(rewriter.getAST().newSimpleName(JPAConst.ANNOTATION_GENERATED_VALUE));
ListRewrite lrw = rewriter.getListRewrite(node, MethodDeclaration.MODIFIERS2_PROPERTY);
lrw.insertFirst(matd, null);
}
}
if (entityInfo.isAddPrimaryIdFlag()) {
String primaryIdName = entityInfo.getPrimaryIdName();
boolean addIdMarker = false;
if (primaryIdName.equals(returnIdentifier)) {
addIdMarker = true;
}
if (addIdMarker) {
MarkerAnnotation matd = rewriter.getAST().newMarkerAnnotation();
matd.setTypeName(rewriter.getAST().newSimpleName(JPAConst.ANNOTATION_ID));
ListRewrite lrw = rewriter.getListRewrite(node, MethodDeclaration.MODIFIERS2_PROPERTY);
lrw.insertFirst(matd, null);
}
}
if (enableOptLock && entityInfo.isAddVersionFlag() && !entityInfo.hasVersionAnnotation()) {
boolean addVersionMarker = false;
if ("version".equals(returnIdentifier)) {
// $NON-NLS-1$
addVersionMarker = true;
}
if (addVersionMarker) {
MarkerAnnotation matd = rewriter.getAST().newMarkerAnnotation();
matd.setTypeName(rewriter.getAST().newSimpleName(JPAConst.ANNOTATION_VERSION));
ListRewrite lrw = rewriter.getListRewrite(node, MethodDeclaration.MODIFIERS2_PROPERTY);
lrw.insertFirst(matd, null);
}
}
}
if (type.isSimpleType() && (AllEntitiesProcessor.columnLength != defaultStrLength)) {
SimpleType simpleType = (SimpleType) type;
String typeName = simpleType.getName().getFullyQualifiedName();
if ("java.lang.String".equals(typeName) || "String".equals(typeName)) {
// $NON-NLS-1$ //$NON-NLS-2$
String fieldId = returnIdentifier;
RefColumnInfo rci = entityInfo.getRefColumnInfo(fieldId);
if (rci == null || !rci.isExist()) {
// if there is no @Column annotation - create new @Column annotation
// with user defined default value length
NormalAnnotation natd = rewriter.getAST().newNormalAnnotation();
natd.setTypeName(rewriter.getAST().newSimpleName(JPAConst.ANNOTATION_COLUMN));
ListRewrite lrw = rewriter.getListRewrite(node, MethodDeclaration.MODIFIERS2_PROPERTY);
lrw.insertFirst(natd, null);
MemberValuePair mvp = rewriter.getAST().newMemberValuePair();
// $NON-NLS-1$
mvp.setName(rewriter.getAST().newSimpleName("length"));
NumberLiteral nl = rewriter.getAST().newNumberLiteral(String.valueOf(defaultStrLength));
mvp.setValue(nl);
natd.values().add(mvp);
}
}
}
if (type.isSimpleType() || type.isParameterizedType() || type.isArrayType()) {
// $NON-NLS-1$
String fieldId = "";
RefType refType = RefType.UNDEF;
boolean annotated = false;
// $NON-NLS-1$
String fullyQualifiedName2 = "";
fieldId = returnIdentifier;
refType = entityInfo.getFieldIdRelValue(fieldId);
annotated = entityInfo.getFieldIdAnnotatedValue(fieldId);
fullyQualifiedName2 = entityInfo.getFieldIdFQNameValue(fieldId);
Set<RefFieldInfo> setRFI = entityInfo.getRefFieldInfoSet(fullyQualifiedName2);
if (!annotated && setRFI != null && isSimilarType(type, fullyQualifiedName2)) {
RefEntityInfo rei = entityInfo.getFieldIdRefEntityInfo(fieldId);
// either side may be the owning side
if (setRFI.size() > 1 && refType != RefType.MANY2ONE) {
if (rei.mappedBy == null || rei.mappedBy == "") {
// $NON-NLS-1$
addSimpleMarkerAnnotation(node, JPAConst.getRefType(refType));
} else {
// give to the user information about selected mapping
addComplexNormalAnnotation(node, JPAConst.getRefType(refType), rei);
}
} else if (refType == RefType.MANY2ONE || refType == RefType.ENUMERATED || rei.mappedBy == null || rei.mappedBy == "") {
// $NON-NLS-1$
addSimpleMarkerAnnotation(node, JPAConst.getRefType(refType));
} else {
// in case of bidirectional OneToOne - mark both sides with mappedBy -
// user should select the right decision
addComplexNormalAnnotation(node, JPAConst.getRefType(refType), rei);
}
}
}
return true;
}
use of org.hibernate.eclipse.jdt.ui.internal.jpa.common.RefFieldInfo in project jbosstools-hibernate by jbosstools.
the class ProcessEntityInfo method visit.
@SuppressWarnings("unchecked")
public boolean visit(FieldDeclaration node) {
if (entityInfo == null) {
return false;
}
if (annotationStyle != AnnotStyle.FIELDS) {
return true;
}
Type type = node.getType();
if (type == null) {
return true;
}
if (type.isSimpleType() || type.isPrimitiveType()) {
if (entityInfo.isAddGeneratedValueFlag()) {
String primaryIdName = entityInfo.getPrimaryIdName();
Iterator<VariableDeclarationFragment> itVarNames = node.fragments().iterator();
boolean addGeneratedValueMarker = false;
while (itVarNames.hasNext()) {
VariableDeclarationFragment var = itVarNames.next();
String name = var.getName().getIdentifier();
if (primaryIdName.equals(name)) {
addGeneratedValueMarker = true;
break;
}
}
if (addGeneratedValueMarker) {
MarkerAnnotation matd = rewriter.getAST().newMarkerAnnotation();
matd.setTypeName(rewriter.getAST().newSimpleName(JPAConst.ANNOTATION_GENERATED_VALUE));
ListRewrite lrw = rewriter.getListRewrite(node, FieldDeclaration.MODIFIERS2_PROPERTY);
lrw.insertFirst(matd, null);
}
}
if (entityInfo.isAddPrimaryIdFlag()) {
String primaryIdName = entityInfo.getPrimaryIdName();
Iterator<VariableDeclarationFragment> itVarNames = node.fragments().iterator();
boolean addIdMarker = false;
while (itVarNames.hasNext()) {
VariableDeclarationFragment var = itVarNames.next();
String name = var.getName().getIdentifier();
if (primaryIdName.equals(name)) {
addIdMarker = true;
break;
}
}
if (addIdMarker) {
MarkerAnnotation matd = rewriter.getAST().newMarkerAnnotation();
matd.setTypeName(rewriter.getAST().newSimpleName(JPAConst.ANNOTATION_ID));
ListRewrite lrw = rewriter.getListRewrite(node, FieldDeclaration.MODIFIERS2_PROPERTY);
lrw.insertFirst(matd, null);
}
}
if (enableOptLock && entityInfo.isAddVersionFlag() && !entityInfo.hasVersionAnnotation()) {
Iterator<VariableDeclarationFragment> itVarNames = node.fragments().iterator();
boolean addVersionMarker = false;
while (itVarNames.hasNext()) {
VariableDeclarationFragment var = itVarNames.next();
String name = var.getName().getIdentifier();
if ("version".equals(name)) {
// $NON-NLS-1$
addVersionMarker = true;
break;
}
}
if (addVersionMarker) {
MarkerAnnotation matd = rewriter.getAST().newMarkerAnnotation();
matd.setTypeName(rewriter.getAST().newSimpleName(JPAConst.ANNOTATION_VERSION));
ListRewrite lrw = rewriter.getListRewrite(node, FieldDeclaration.MODIFIERS2_PROPERTY);
lrw.insertFirst(matd, null);
}
}
}
if (type.isSimpleType() && (AllEntitiesProcessor.columnLength != defaultStrLength)) {
SimpleType simpleType = (SimpleType) type;
String typeName = simpleType.getName().getFullyQualifiedName();
if ("java.lang.String".equals(typeName) || "String".equals(typeName)) {
// $NON-NLS-1$ //$NON-NLS-2$
String fieldId = null;
Iterator<VariableDeclarationFragment> itVarNames = node.fragments().iterator();
while (itVarNames.hasNext()) {
VariableDeclarationFragment var = itVarNames.next();
fieldId = var.getName().getIdentifier();
if (fieldId != null) {
break;
}
}
RefColumnInfo rci = entityInfo.getRefColumnInfo(fieldId);
if (rci == null || !rci.isExist()) {
// if there is no @Column annotation - create new @Column annotation
// with user defined default value length
NormalAnnotation natd = rewriter.getAST().newNormalAnnotation();
natd.setTypeName(rewriter.getAST().newSimpleName(JPAConst.ANNOTATION_COLUMN));
ListRewrite lrw = rewriter.getListRewrite(node, FieldDeclaration.MODIFIERS2_PROPERTY);
lrw.insertFirst(natd, null);
MemberValuePair mvp = rewriter.getAST().newMemberValuePair();
// $NON-NLS-1$
mvp.setName(rewriter.getAST().newSimpleName("length"));
NumberLiteral nl = rewriter.getAST().newNumberLiteral(String.valueOf(defaultStrLength));
mvp.setValue(nl);
natd.values().add(mvp);
}
}
}
if (type.isSimpleType() || type.isParameterizedType() || type.isArrayType()) {
Iterator<VariableDeclarationFragment> itVarNames = node.fragments().iterator();
// $NON-NLS-1$
String fieldId = "";
RefType refType = RefType.UNDEF;
boolean annotated = false;
// $NON-NLS-1$
String fullyQualifiedName2 = "";
while (itVarNames.hasNext()) {
VariableDeclarationFragment var = itVarNames.next();
String name = var.getName().getIdentifier();
fieldId = name;
refType = entityInfo.getFieldIdRelValue(fieldId);
annotated = entityInfo.getFieldIdAnnotatedValue(fieldId);
fullyQualifiedName2 = entityInfo.getFieldIdFQNameValue(fieldId);
if (refType != RefType.UNDEF) {
break;
}
}
Set<RefFieldInfo> setRFI = entityInfo.getRefFieldInfoSet(fullyQualifiedName2);
if (!annotated && setRFI != null && isSimilarType(type, fullyQualifiedName2)) {
RefEntityInfo rei = entityInfo.getFieldIdRefEntityInfo(fieldId);
// either side may be the owning side
if (setRFI.size() > 1 && refType != RefType.MANY2ONE) {
if (rei.mappedBy == null || rei.mappedBy == "") {
// $NON-NLS-1$
addSimpleMarkerAnnotation(node, JPAConst.getRefType(refType));
} else {
// give to the user information about selected mapping
addComplexNormalAnnotation(node, JPAConst.getRefType(refType), rei);
}
} else if (refType == RefType.MANY2ONE || refType == RefType.ENUMERATED || rei.mappedBy == null || rei.mappedBy == "") {
// $NON-NLS-1$
addSimpleMarkerAnnotation(node, JPAConst.getRefType(refType));
} else {
// in case of bidirectional OneToOne - mark both sides with mappedBy -
// user should select the right decision
addComplexNormalAnnotation(node, JPAConst.getRefType(refType), rei);
}
}
}
return true;
}
Aggregations