Maor Lipchuk has posted comments on this change.

Change subject: core: auto generate Handler fields from annotations
......................................................................


Patch Set 3: (9 inline comments)

Partial reviewed, change look Awesome!
see questions/comments inside

....................................................
File 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsHandler.java
Line 40:         mUpdateVdsStatic =
Line 41:                 new ObjectIdentityChecker(VdsHandler.class, 
Arrays.asList(inspectedClasses), VDSStatus.class);
Line 42: 
Line 43: 
Line 44:         for (Pair<EditableField,String> pair : 
extractyAnnotatedFields(EditableField.class, inspectedClasses)) {
extracty should be extract (extractyAnnotatedFields)
Line 45:             mUpdateVdsStatic.AddPermittedFields(pair.getSecond());
Line 46:         }
Line 47: 
Line 48:         for (Pair<EditableOnVdsStatus,String> pair : 
extractyAnnotatedFields(EditableOnVdsStatus.class, inspectedClasses)) {


....................................................
File 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java
Line 82:      * @see Backend#InitHandlers
Line 83:      */
Line 84:     public static void Init() {
Line 85:         Class<?>[] inspectedClassNames = new Class<?>[] {
Line 86:                 VmBase.class,
Why adding VmBase?
Line 87:                 VM.class,
Line 88:                 VmStatic.class,
Line 89:                 VmDynamic.class };
Line 90: 


Line 91:         mUpdateVmsStatic =
Line 92:                 new ObjectIdentityChecker(VmHandler.class, 
Arrays.asList(inspectedClassNames), VMStatus.class);
Line 93: 
Line 94:         for (Pair<EditableField,String> pair : 
BaseHandler.extractyAnnotatedFields(EditableField.class, 
(inspectedClassNames))) {
Line 95:             mUpdateVmsStatic.AddPermittedFields(pair.getSecond());
You can use here AddPermittedField instead AddPermittedFields since it is only 
a String and avoid the for loop inside
Line 96:         }
Line 97: 
Line 98:         for (Pair<EditableOnVmStatusField, String> pair : 
BaseHandler.extractyAnnotatedFields(EditableOnVmStatusField.class,
Line 99:                 inspectedClassNames)) {


Line 94:         for (Pair<EditableField,String> pair : 
BaseHandler.extractyAnnotatedFields(EditableField.class, 
(inspectedClassNames))) {
Line 95:             mUpdateVmsStatic.AddPermittedFields(pair.getSecond());
Line 96:         }
Line 97: 
Line 98:         for (Pair<EditableOnVmStatusField, String> pair : 
BaseHandler.extractyAnnotatedFields(EditableOnVmStatusField.class,
I would use a different name then pair here (It's a bit confusing since we 
already use it in the previous for loop)
Line 99:                 inspectedClassNames)) {
Line 100:             
mUpdateVmsStatic.AddField(Arrays.asList(pair.getFirst().statuses()),
Line 101:                     pair.getSecond());
Line 102:         }


....................................................
File 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/backendinterfaces/BaseHandler.java
Line 38:      * @param clz
Line 39:      *            class array of the scanned types.
Line 40:      * @return array of pairs of a the annotation instance -> field 
name
Line 41:      */
Line 42:     public static <A extends Annotation> List<Pair<A , String>> 
extractyAnnotatedFields(Class<A> annotation, Class<?>... clz) {
Maybe switch extractyAnnotatedFields with extractAnnotatedFields
Line 43:         List<Pair<A, String>> pairList = new ArrayList<Pair<A, 
String>>();
Line 44:         for (Class<?> clazz : clz) {
Line 45:             for (Field field : clazz.getDeclaredFields()) {
Line 46:                 A fieldAnnotation = field.getAnnotation(annotation);


....................................................
File 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmBase.java
Line 86:     @EditableField
Line 87:     private BootSequence defaultBootSequence = BootSequence.C;
Line 88: 
Line 89:     @EditableOnVmStatusField
Line 90:     private int niceLevel;
Isn't that field should have EditableField annotation
Line 91: 
Line 92:     @EditableField
Line 93:     private boolean autoSuspend;
Line 94: 


Line 89:     @EditableOnVmStatusField
Line 90:     private int niceLevel;
Line 91: 
Line 92:     @EditableField
Line 93:     private boolean autoSuspend;
Not related to this patch, but is this field used today?
Line 94: 
Line 95:     @EditableField
Line 96:     private int priority;
Line 97: 


Line 98:     @EditableField
Line 99:     private boolean autoStartup;
Line 100: 
Line 101:     @EditableOnVmStatusField
Line 102:     private boolean stateless;
Isn't that field should have EditableField annotation
Line 103: 
Line 104:     @EditableField
Line 105:     private boolean deleteProtected;
Line 106: 


Line 219:         this.vdsGroupId = vdsGroupId;
Line 220:         this.os = os;
Line 221:         this.creationDate = creationDate;
Line 222:         this.description = description;
Line 223:         this.memSizeMb = memSizeMB;
Not sure why changing memSizeMb, at any case it should be correlated with the 
argument in the method.
Line 224:         this.numOfSockets = numOfSockets;
Line 225:         this.cpuPerSocket = cpusPerSocket;
Line 226:         this.numOfMonitors = numOfMonitors;
Line 227:         this.domain = domain;


--
To view, visit http://gerrit.ovirt.org/11916
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I8441f030c161c99c630a945b8b0228114665aa17
Gerrit-PatchSet: 3
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Roy Golan <[email protected]>
Gerrit-Reviewer: Allon Mureinik <[email protected]>
Gerrit-Reviewer: Arik Hadas <[email protected]>
Gerrit-Reviewer: Laszlo Hornyak <[email protected]>
Gerrit-Reviewer: Maor Lipchuk <[email protected]>
Gerrit-Reviewer: Roy Golan <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to