Tomas Jelinek has uploaded a new change for review. Change subject: frontend: introduce generics to UICommon ......................................................................
frontend: introduce generics to UICommon Infrastructure part of the introduction of the generics into UICommon. Changes: - changed EntityModel and ListModel to be generic - adjusted UiCommonEditorDriverGenerator to work with generics - created a <String> version of the EntityModelTextBox. The widgets has to have proper generic types and most of them already does. Only the ones editing Strings (e.g. EntityModelTextBox) was set as <Object>. This patch introduces a generic version of this widgets into the .generic subpackage marking the old as depricated. Change-Id: Ifaa6185e75adfd9405132fce2782f6c7cbc17f7f Signed-off-by: Tomas Jelinek <[email protected]> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/binding/UiCommonEditorDriverGenerator.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelRenderer.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelTextBox.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelTextBoxEditor.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/ObservableValueBoxEditor.java A frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelRenderer.java A frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelTextBox.java A frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelTextBoxEditor.java A frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/ObservableValueBoxEditor.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/parser/EntityModelParser.java A frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/parser/generic/EntityModelParser.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/EntityModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ListModel.java M frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/NotifyCollectionChangedEventArgs.java 14 files changed, 174 insertions(+), 37 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/04/17604/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/binding/UiCommonEditorDriverGenerator.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/binding/UiCommonEditorDriverGenerator.java index f9f2dc4..93990b6 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/binding/UiCommonEditorDriverGenerator.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/binding/UiCommonEditorDriverGenerator.java @@ -57,8 +57,9 @@ SourceWriter sw) throws UnableToCompleteException { TypeOracle typeOracle = context.getTypeOracle(); - entityModelType = typeOracle.findType("org.ovirt.engine.ui.uicommonweb.models.EntityModel"); //$NON-NLS-1$ - listModelType = typeOracle.findType("org.ovirt.engine.ui.uicommonweb.models.ListModel"); //$NON-NLS-1$ + entityModelType = eraseType(typeOracle.findType("org.ovirt.engine.ui.uicommonweb.models.EntityModel")); //$NON-NLS-1$ + listModelType = eraseType(typeOracle.findType("org.ovirt.engine.ui.uicommonweb.models.ListModel")); //$NON-NLS-1$ + this.logger = logger; this.model = model; this.sw = sw; @@ -67,6 +68,7 @@ writeListenerMap(); writeEventMap(); writeOwnerModels(); + } /** @@ -144,7 +146,7 @@ continue; } - JClassType propertyOwnerType = editorData.getPropertyOwnerType(); + JClassType propertyOwnerType = eraseType(editorData.getPropertyOwnerType()); if (propertyOwnerType == entityModelType) { logger.log(Type.DEBUG, "Found EntityModel Field: " + editorData); //$NON-NLS-1$ @@ -191,7 +193,7 @@ continue; } - JClassType propertyOwnerType = editorData.getPropertyOwnerType(); + JClassType propertyOwnerType = eraseType(editorData.getPropertyOwnerType()); if (propertyOwnerType == listModelType || propertyOwnerType == entityModelType) { logger.log(Type.DEBUG, "Found owner Model Field: " + editorData); //$NON-NLS-1$ @@ -203,4 +205,8 @@ sw.println("}"); //$NON-NLS-1$ } + + private JClassType eraseType(JClassType classType) { + return classType == null ? null : classType.getErasedType(); + } } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelRenderer.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelRenderer.java index ddae9b5..c6551e6 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelRenderer.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelRenderer.java @@ -2,6 +2,10 @@ import com.google.gwt.text.shared.AbstractRenderer; +/** + * @deprecated use the org.ovirt.engine.ui.common.widget.editor.generic.EntityModelRenderer instead + */ +@Deprecated public class EntityModelRenderer extends AbstractRenderer<Object> { @Override diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelTextBox.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelTextBox.java index c5434f5..2b8ab0b 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelTextBox.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelTextBox.java @@ -8,6 +8,10 @@ import com.google.gwt.text.shared.Renderer; import com.google.gwt.user.client.ui.ValueBox; +/** + * @deprecated use the org.ovirt.engine.ui.common.widget.editor.generic.EntityModelTextBox instead + */ +@Deprecated public class EntityModelTextBox extends ValueBox<Object> implements EditorWidget<Object, ValueBoxEditor<Object>> { private ObservableValueBoxEditor editor; diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelTextBoxEditor.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelTextBoxEditor.java index 7a773c8..7e2af14 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelTextBoxEditor.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelTextBoxEditor.java @@ -7,7 +7,9 @@ /** * Composite Editor that uses {@link EntityModelTextBox}. + * @deprecated use org.ovirt.engine.ui.common.widget.editor.generic.EntityModelTextBoxEditor instead */ +@Deprecated public class EntityModelTextBoxEditor extends AbstractValueBoxWithLabelEditor<Object, EntityModelTextBox> { public EntityModelTextBoxEditor(VisibilityRenderer visibilityRenderer) { diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/ObservableValueBoxEditor.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/ObservableValueBoxEditor.java index de08bf6..8b71572 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/ObservableValueBoxEditor.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/ObservableValueBoxEditor.java @@ -9,7 +9,9 @@ /** * A {@link ValueBoxEditor} that adapts to {@link HasValueChangeHandlers} interface. + * @deprecated use org.ovirt.engine.ui.common.widget.editor.generic.ObservableValueBoxEditor */ +@Deprecated public class ObservableValueBoxEditor extends ValueBoxEditor<Object> implements HasValueChangeHandlers<Object> { private final ValueBoxBase<Object> peer; diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelRenderer.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelRenderer.java new file mode 100644 index 0000000..fe5aaf8 --- /dev/null +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelRenderer.java @@ -0,0 +1,12 @@ +package org.ovirt.engine.ui.common.widget.editor.generic; + +import com.google.gwt.text.shared.AbstractRenderer; + +public class EntityModelRenderer<T> extends AbstractRenderer<T> { + + @Override + public String render(T entity) { + return entity == null ? null : entity.toString(); + } + +} diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelTextBox.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelTextBox.java new file mode 100644 index 0000000..bdf4f0f --- /dev/null +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelTextBox.java @@ -0,0 +1,31 @@ +package org.ovirt.engine.ui.common.widget.editor.generic; + +import com.google.gwt.dom.client.Document; +import com.google.gwt.editor.ui.client.adapters.ValueBoxEditor; +import com.google.gwt.text.shared.Parser; +import com.google.gwt.text.shared.Renderer; +import com.google.gwt.user.client.ui.ValueBox; +import org.ovirt.engine.ui.common.widget.editor.EditorWidget; +import org.ovirt.engine.ui.common.widget.parser.generic.EntityModelParser; + +public class EntityModelTextBox extends ValueBox<String> implements EditorWidget<String, ValueBoxEditor<String>> { + + private ObservableValueBoxEditor<String> editor; + + public EntityModelTextBox() { + super(Document.get().createTextInputElement(), new EntityModelRenderer<String>(), new EntityModelParser()); + } + + public EntityModelTextBox(Renderer<String> renderer, Parser<String> parser) { + super(Document.get().createTextInputElement(), renderer, parser); + } + + @Override + public ValueBoxEditor<String> asEditor() { + if (editor == null) { + editor = new ObservableValueBoxEditor<String>(this); + } + return editor; + } + +} diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelTextBoxEditor.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelTextBoxEditor.java new file mode 100644 index 0000000..cfd6e8a --- /dev/null +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelTextBoxEditor.java @@ -0,0 +1,28 @@ +package org.ovirt.engine.ui.common.widget.editor.generic; + +import com.google.gwt.text.shared.Parser; +import com.google.gwt.text.shared.Renderer; +import org.ovirt.engine.ui.common.widget.VisibilityRenderer; +import org.ovirt.engine.ui.common.widget.editor.AbstractValueBoxWithLabelEditor; + +/** + * Composite Editor that uses {@link EntityModelTextBox}. + */ +public class EntityModelTextBoxEditor extends AbstractValueBoxWithLabelEditor<String, EntityModelTextBox> { + + public EntityModelTextBoxEditor(VisibilityRenderer visibilityRenderer) { + super(new EntityModelTextBox(), visibilityRenderer); + } + + public EntityModelTextBoxEditor() { + super(new EntityModelTextBox()); + } + + public EntityModelTextBoxEditor(Renderer<String> renderer, Parser<String> parser) { + super(new EntityModelTextBox(renderer, parser)); + } + + public EntityModelTextBoxEditor(Renderer<String> renderer, Parser<String> parser, VisibilityRenderer visibilityRenderer) { + super(new EntityModelTextBox(renderer, parser), visibilityRenderer); + } +} diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/ObservableValueBoxEditor.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/ObservableValueBoxEditor.java new file mode 100644 index 0000000..b705bb3 --- /dev/null +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/ObservableValueBoxEditor.java @@ -0,0 +1,31 @@ +package org.ovirt.engine.ui.common.widget.editor.generic; + +import com.google.gwt.editor.ui.client.adapters.ValueBoxEditor; +import com.google.gwt.event.logical.shared.HasValueChangeHandlers; +import com.google.gwt.event.logical.shared.ValueChangeHandler; +import com.google.gwt.event.shared.GwtEvent; +import com.google.gwt.event.shared.HandlerRegistration; +import com.google.gwt.user.client.ui.ValueBoxBase; + +/** + * A {@link com.google.gwt.editor.ui.client.adapters.ValueBoxEditor} that adapts to {@link com.google.gwt.event.logical.shared.HasValueChangeHandlers} interface. + */ +public class ObservableValueBoxEditor<T> extends ValueBoxEditor<T> implements HasValueChangeHandlers<T> { + private final ValueBoxBase<T> peer; + + public ObservableValueBoxEditor(ValueBoxBase<T> peer) { + super(peer); + this.peer = peer; + } + + @Override + public void fireEvent(GwtEvent<?> event) { + peer.fireEvent(event); + } + + @Override + public HandlerRegistration addValueChangeHandler(ValueChangeHandler<T> handler) { + return peer.addValueChangeHandler(handler); + } + +} diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/parser/EntityModelParser.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/parser/EntityModelParser.java index dbf90bc..7ee6a1f 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/parser/EntityModelParser.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/parser/EntityModelParser.java @@ -4,6 +4,10 @@ import com.google.gwt.text.shared.Parser; +/** + * @deprecated use org.ovirt.engine.ui.common.widget.parser.generic.EntityModelParser + */ +@Deprecated public class EntityModelParser implements Parser<Object> { @Override diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/parser/generic/EntityModelParser.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/parser/generic/EntityModelParser.java new file mode 100644 index 0000000..5a736eb --- /dev/null +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/parser/generic/EntityModelParser.java @@ -0,0 +1,13 @@ +package org.ovirt.engine.ui.common.widget.parser.generic; + +import com.google.gwt.text.shared.Parser; +import java.text.ParseException; + +public class EntityModelParser implements Parser<String> { + + @Override + public String parse(CharSequence text) throws ParseException { + return text == null ? "" : text.toString(); + } + +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/EntityModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/EntityModel.java index e243bf0..6e90692 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/EntityModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/EntityModel.java @@ -11,7 +11,7 @@ import org.ovirt.engine.ui.uicompat.ProvidePropertyChangedEvent; @SuppressWarnings("unused") -public class EntityModel extends Model +public class EntityModel<T> extends Model { public static EventDefinition EntityChangedEventDefinition; @@ -27,14 +27,14 @@ privateEntityChangedEvent = value; } - private Object entity; + private T entity; - public Object getEntity() + public T getEntity() { return entity; } - public void setEntity(Object value) + public void setEntity(T value) { if (entity != value) { @@ -59,7 +59,7 @@ return this; } - public void setEntity(Object value, boolean fireEvents) { + public void setEntity(T value, boolean fireEvents) { if (fireEvents) { setEntity(value); } @@ -78,19 +78,19 @@ setEntityChangedEvent(new Event(EntityChangedEventDefinition)); } - public EntityModel(Object entity) { + public EntityModel(T entity) { this(); setEntity(entity); } - public EntityModel(String title, Object entity) { + public EntityModel(String title, T entity) { this(entity); setTitle(title); } - protected void entityChanging(Object newValue, Object oldValue) + protected void entityChanging(T newValue, T oldValue) { IProvidePropertyChangedEvent notifier = (IProvidePropertyChangedEvent) ((oldValue instanceof IProvidePropertyChangedEvent) ? oldValue : null); @@ -161,4 +161,5 @@ public Convertible asConvertible() { return new Convertible(this); } + } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ListModel.java index 8b1a4e5..3239d48 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ListModel.java @@ -1,7 +1,6 @@ package org.ovirt.engine.ui.uicommonweb.models; import java.util.List; - import org.ovirt.engine.ui.uicommonweb.validation.IValidation; import org.ovirt.engine.ui.uicommonweb.validation.ValidationResult; import org.ovirt.engine.ui.uicompat.Event; @@ -14,8 +13,7 @@ import org.ovirt.engine.ui.uicompat.ProvideCollectionChangedEvent; import org.ovirt.engine.ui.uicompat.ProvidePropertyChangedEvent; -@SuppressWarnings("unused") -public class ListModel extends EntityModel +public class ListModel<T> extends EntityModel<T> { public static EventDefinition selectedItemChangedEventDefinition; @@ -57,14 +55,14 @@ privateItemsChangedEvent = value; } - protected List selectedItems; + protected List<T> selectedItems; - public List getSelectedItems() + public List<T> getSelectedItems() { return selectedItems; } - public void setSelectedItems(List value) + public void setSelectedItems(List<T> value) { if (selectedItems != value) { @@ -76,14 +74,14 @@ } } - protected Object selectedItem; + protected T selectedItem; - public Object getSelectedItem() + public T getSelectedItem() { return selectedItem; } - public void setSelectedItem(Object value) + public void setSelectedItem(T value) { if (selectedItem != value) { @@ -95,14 +93,14 @@ } } - protected Iterable items; + protected Iterable<T> items; - public Iterable getItems() + public Iterable<T> getItems() { return items; } - public void setItems(Iterable value) + public void setItems(Iterable<T> value) { if (items != value) { @@ -158,7 +156,7 @@ setItemsChangedEvent(new Event(ItemsChangedEventDefinition)); } - protected void onSelectedItemChanging(Object newValue, Object oldValue) + protected void onSelectedItemChanging(T newValue, T oldValue) { } @@ -170,7 +168,7 @@ { } - protected void selectedItemsChanging(List newValue, List oldValue) + protected void selectedItemsChanging(List<T> newValue, List<T> oldValue) { // Skip this method when notifying on property change for any // item but not only for selected ones is requested. @@ -198,7 +196,7 @@ boolean anyOfSelectedItem = false; if (getSelectedItems() != null) { - for (Object item : getSelectedItems()) + for (T item : getSelectedItems()) { if (item == sender) { @@ -225,7 +223,7 @@ } else if (ev.matchesDefinition(ProvideCollectionChangedEvent.Definition)) { - itemsCollectionChanged(sender, (NotifyCollectionChangedEventArgs) args); + itemsCollectionChanged(sender, (NotifyCollectionChangedEventArgs<T>) args); } } @@ -251,7 +249,7 @@ setSelectedItems(null); } - protected void itemsChanging(Iterable newValue, Iterable oldValue) + protected void itemsChanging(Iterable<T> newValue, Iterable<T> oldValue) { IProvideCollectionChangedEvent notifier = (IProvideCollectionChangedEvent) ((oldValue instanceof IProvideCollectionChangedEvent) ? oldValue @@ -277,7 +275,7 @@ /** * Invoked whenever items collection was changed, i.e. some items was added or removed. */ - protected void itemsCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e) + protected void itemsCollectionChanged(Object sender, NotifyCollectionChangedEventArgs<T> e) { if (!getNotifyPropertyChangeForAnyItem()) { @@ -314,14 +312,14 @@ } } - private void subscribeList(Iterable list) + private void subscribeList(Iterable<T> list) { if (list == null) { return; } - for (Object a : list) + for (T a : list) { IProvidePropertyChangedEvent notifier = (IProvidePropertyChangedEvent) ((a instanceof IProvidePropertyChangedEvent) ? a : null); @@ -332,14 +330,14 @@ } } - private void unsubscribeList(Iterable list) + private void unsubscribeList(Iterable<T> list) { if (list == null) { return; } - for (Object a : list) + for (T a : list) { IProvidePropertyChangedEvent notifier = (IProvidePropertyChangedEvent) ((a instanceof IProvidePropertyChangedEvent) ? a : null); @@ -349,4 +347,5 @@ } } } + } diff --git a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/NotifyCollectionChangedEventArgs.java b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/NotifyCollectionChangedEventArgs.java index ebd9b6b..e7f36fc 100644 --- a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/NotifyCollectionChangedEventArgs.java +++ b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/NotifyCollectionChangedEventArgs.java @@ -1,8 +1,8 @@ package org.ovirt.engine.ui.uicompat; -public class NotifyCollectionChangedEventArgs extends EventArgs { +public class NotifyCollectionChangedEventArgs<T> extends EventArgs { public NotifyCollectionChangedAction Action; - public Iterable<Object> NewItems; - public Iterable<Object> OldItems; + public Iterable<T> NewItems; + public Iterable<T> OldItems; } -- To view, visit http://gerrit.ovirt.org/17604 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ifaa6185e75adfd9405132fce2782f6c7cbc17f7f Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Tomas Jelinek <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
