Project

General

Profile

« Previous | Next » 

Revision 222d6e76

Added by Patrick Plitzner over 7 years ago

ref #5616 Fix possible NPE for BulkEditor inputs

View differences:

eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.java
10 10
package eu.etaxonomy.taxeditor.bulkeditor.input;
11 11

  
12 12
import java.util.ArrayList;
13
import java.util.Arrays;
14 13
import java.util.Collections;
15 14
import java.util.Comparator;
16 15
import java.util.List;
......
59 58
	private IEntityCreator<T> entityCreator;
60 59
	private final ConversationHolder conversation;
61 60

  
62
	private static Class serviceClass;
63

  
64 61
	public AbstractBulkEditorInput() {
65 62
	    super(true);
66 63
	    this.conversation = CdmStore.createConversation();
......
103 100
	 */
104 101
	protected abstract List<T> listEntities(IIdentifiableEntityServiceConfigurator configurator);
105 102

  
106
	/**
107
	 * <p>loadEntity</p>
108
	 *
109
	 * @param entityUuid a {@link java.util.UUID} object.
110
	 * @return a T object.
111
	 */
112
	protected T loadEntity(UUID entityUuid) {
113
		List<String> propertyPaths = Arrays.asList(new String[]{});
114
		return (T) CdmStore.getService(serviceClass).load(entityUuid, propertyPaths);
115
	}
103
	protected abstract T loadEntity(UUID entityUuid);
116 104

  
117 105
	private void setEntityUuid(UUID entityUuid){
118 106
		this.entityUuid = entityUuid;
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AgentEditorInput.java
9 9
*/
10 10
package eu.etaxonomy.taxeditor.bulkeditor.input;
11 11

  
12
import java.util.Arrays;
12 13
import java.util.List;
14
import java.util.UUID;
13 15

  
14 16
import eu.etaxonomy.cdm.api.service.IAgentService;
15 17
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
16 18
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
19
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
17 20
import eu.etaxonomy.cdm.model.agent.AgentBase;
18 21
import eu.etaxonomy.cdm.model.agent.Person;
19 22
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
......
171 174
    }
172 175

  
173 176

  
177
	@Override
178
	protected TeamOrPersonBase loadEntity(UUID entityUuid) {
179
		List<String> propertyPaths = Arrays.asList(new String[]{});
180
		return HibernateProxyHelper.deproxy(CdmStore.getService(IAgentService.class).load(entityUuid, propertyPaths), TeamOrPersonBase.class);
181
	}
182

  
183

  
184

  
174 185
}
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/GroupEditorInput.java
10 10

  
11 11
package eu.etaxonomy.taxeditor.bulkeditor.input;
12 12

  
13
import java.util.Arrays;
13 14
import java.util.List;
15
import java.util.UUID;
14 16

  
17
import eu.etaxonomy.cdm.api.service.IAgentService;
15 18
import eu.etaxonomy.cdm.api.service.IGroupService;
16 19
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
17 20
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
21
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
18 22
import eu.etaxonomy.cdm.model.common.Group;
19 23
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
20 24
import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.GroupCreator;
......
120 124

  
121 125
    }
122 126

  
127
	@Override
128
	protected Group loadEntity(UUID entityUuid) {
129
		List<String> propertyPaths = Arrays.asList(new String[]{});
130
		return HibernateProxyHelper.deproxy(CdmStore.getService(IAgentService.class).load(entityUuid, propertyPaths), Group.class);
131
	}
132

  
123 133

  
124 134

  
125 135
}
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/MediaEditorInput.java
9 9
*/
10 10
package eu.etaxonomy.taxeditor.bulkeditor.input;
11 11

  
12
import java.util.Arrays;
12 13
import java.util.List;
14
import java.util.UUID;
13 15

  
14 16
import eu.etaxonomy.cdm.api.service.IMediaService;
15 17
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
......
91 93

  
92 94
        return sortProviders;
93 95
    }
96
    
97
	@Override
98
	protected Media loadEntity(UUID entityUuid) {
99
		List<String> propertyPaths = Arrays.asList(new String[]{});
100
		return CdmStore.getService(IMediaService.class).load(entityUuid, propertyPaths);
101
	}
102

  
94 103
}
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/NameEditorInput.java
10 10

  
11 11
package eu.etaxonomy.taxeditor.bulkeditor.input;
12 12

  
13
import java.util.ArrayList;
14 13
import java.util.Arrays;
15 14
import java.util.List;
16 15
import java.util.UUID;
......
180 179

  
181 180
    }
182 181

  
182
	@Override
183
	protected TaxonNameBase loadEntity(UUID entityUuid) {
184
		List<String> propertyPaths = Arrays.asList(new String[]{});
185
		return CdmStore.getService(INameService.class).load(entityUuid, getPropertyPaths());
186
	}
187

  
188

  
183 189
    private List<String> getPropertyPaths(){
184 190
    	 List<String> nameBasePropertyPaths = Arrays.asList(new String[] {
185 191
    	 "name.descriptions",
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/OccurrenceEditorInput.java
10 10

  
11 11
package eu.etaxonomy.taxeditor.bulkeditor.input;
12 12

  
13
import java.util.Arrays;
13 14
import java.util.List;
15
import java.util.UUID;
14 16

  
15 17
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
16 18
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
......
173 175
    public void merge() {
174 176

  
175 177
    }
178

  
179
	@Override
180
	protected SpecimenOrObservationBase loadEntity(UUID entityUuid) {
181
		List<String> propertyPaths = Arrays.asList(new String[]{});
182
		return CdmStore.getService(IOccurrenceService.class).load(entityUuid, propertyPaths);
183
	}
184

  
176 185
}
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/UserEditorInput.java
10 10

  
11 11
package eu.etaxonomy.taxeditor.bulkeditor.input;
12 12

  
13
import java.util.Arrays;
13 14
import java.util.List;
15
import java.util.UUID;
14 16

  
15 17
import eu.etaxonomy.cdm.api.service.IUserService;
16 18
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
......
121 123
    public void merge() {
122 124

  
123 125
    }
126
    
127

  
128
	@Override
129
	protected User loadEntity(UUID entityUuid) {
130
		List<String> propertyPaths = Arrays.asList(new String[]{});
131
		return CdmStore.getService(IUserService.class).load(entityUuid, propertyPaths);
132
	}
133

  
124 134

  
125 135

  
126 136
}

Also available in: Unified diff