mirror of
https://github.com/PAMGuard/PAMGuard.git
synced 2024-11-25 16:42:27 +00:00
Removing empty fields
Start of implementation of code that can remove empty fields from objects before they are written.
This commit is contained in:
parent
65300d719a
commit
e0392de9c7
@ -45,6 +45,7 @@ import tethys.TethysTimeFuncs;
|
|||||||
import tethys.calibration.swing.CalibrationsExportWizard;
|
import tethys.calibration.swing.CalibrationsExportWizard;
|
||||||
import tethys.dbxml.DBXMLConnect;
|
import tethys.dbxml.DBXMLConnect;
|
||||||
import tethys.dbxml.TethysException;
|
import tethys.dbxml.TethysException;
|
||||||
|
import tethys.niluswraps.NilusChecker;
|
||||||
import tethys.niluswraps.NilusSettingsWrapper;
|
import tethys.niluswraps.NilusSettingsWrapper;
|
||||||
import tethys.niluswraps.NilusUnpacker;
|
import tethys.niluswraps.NilusUnpacker;
|
||||||
import tethys.pamdata.AutoTethysProvider;
|
import tethys.pamdata.AutoTethysProvider;
|
||||||
@ -197,9 +198,20 @@ public class CalibrationHandler implements TethysStateObserver {
|
|||||||
calDoc.setMetadataInfo(sampleCal.getMetadataInfo());
|
calDoc.setMetadataInfo(sampleCal.getMetadataInfo());
|
||||||
calDoc.setProcess(sampleCal.getProcess());
|
calDoc.setProcess(sampleCal.getProcess());
|
||||||
calDoc.setQualityAssurance(sampleCal.getQualityAssurance());
|
calDoc.setQualityAssurance(sampleCal.getQualityAssurance());
|
||||||
calDoc.setResponsibleParty(sampleCal.getResponsibleParty());
|
if (NilusChecker.isEmpty(sampleCal.getResponsibleParty()) == false) {
|
||||||
|
calDoc.setResponsibleParty(sampleCal.getResponsibleParty());
|
||||||
|
}
|
||||||
calDoc.setTimeStamp(sampleCal.getTimeStamp());
|
calDoc.setTimeStamp(sampleCal.getTimeStamp());
|
||||||
}
|
}
|
||||||
|
// check the contact info in the metadata.
|
||||||
|
// can't so because it's required.
|
||||||
|
// MetadataInfo metaData = calDoc.getMetadataInfo();
|
||||||
|
// if (metaData != null) {
|
||||||
|
// if (NilusChecker.isEmpty(metaData.getContact())) {
|
||||||
|
// metaData.setContact(null);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
addParameterDetails(calDoc, i);
|
addParameterDetails(calDoc, i);
|
||||||
|
|
||||||
@ -408,6 +420,10 @@ public class CalibrationHandler implements TethysStateObserver {
|
|||||||
hz.add(Double.valueOf(0));
|
hz.add(Double.valueOf(0));
|
||||||
db.add(Double.valueOf(hSens+preampGain));
|
db.add(Double.valueOf(hSens+preampGain));
|
||||||
|
|
||||||
|
if (NilusChecker.isEmpty(calibration.getResponsibleParty())) {
|
||||||
|
calibration.setResponsibleParty(null);
|
||||||
|
}
|
||||||
|
|
||||||
MetadataInfo metaInf = calibration.getMetadataInfo();
|
MetadataInfo metaInf = calibration.getMetadataInfo();
|
||||||
if (metaInf == null) {
|
if (metaInf == null) {
|
||||||
metaInf = new MetadataInfo();
|
metaInf = new MetadataInfo();
|
||||||
@ -420,6 +436,12 @@ public class CalibrationHandler implements TethysStateObserver {
|
|||||||
contact = new ResponsibleParty();
|
contact = new ResponsibleParty();
|
||||||
metaInf.setContact(contact);
|
metaInf.setContact(contact);
|
||||||
}
|
}
|
||||||
|
if (NilusChecker.isEmpty(metaInf.getContact())) {
|
||||||
|
metaInf.setContact(null);
|
||||||
|
}
|
||||||
|
if (NilusChecker.isEmpty(metaInf)) {
|
||||||
|
calibration.setMetadataInfo(null);
|
||||||
|
}
|
||||||
contact.setIndividualName("Unknown");
|
contact.setIndividualName("Unknown");
|
||||||
contact.setOrganizationName("unknown");
|
contact.setOrganizationName("unknown");
|
||||||
|
|
||||||
|
75
src/tethys/niluswraps/NilusChecker.java
Normal file
75
src/tethys/niluswraps/NilusChecker.java
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
package tethys.niluswraps;
|
||||||
|
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import nilus.ResponsibleParty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A few static checks of some nilus classes to see if it's
|
||||||
|
* worth writing them or not.
|
||||||
|
* @author dg50
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class NilusChecker {
|
||||||
|
|
||||||
|
public static boolean isEmpty(Object nilusObject) {
|
||||||
|
boolean empty = true;
|
||||||
|
if (nilusObject == null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
// and check all getters
|
||||||
|
Class<? extends Object> nilusClass = nilusObject.getClass();
|
||||||
|
Method[] methods = nilusClass.getDeclaredMethods();
|
||||||
|
// searching for getters.
|
||||||
|
int nGet = 0;
|
||||||
|
for (int i = 0; i < methods.length; i++) {
|
||||||
|
Method method = methods[i];
|
||||||
|
if (method.getName().startsWith("get") && method.getParameterCount() == 0) {
|
||||||
|
nGet ++;
|
||||||
|
try {
|
||||||
|
Object got = method.invoke(nilusObject, null);
|
||||||
|
if (got != null) {
|
||||||
|
if (got instanceof String) {
|
||||||
|
if (isEmptyString((String) got) == false) {
|
||||||
|
empty = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (got instanceof List<?>) {
|
||||||
|
if (isEmptyList((List) got) == false) {
|
||||||
|
empty = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (isEmpty(got) == false) {// it's some other class type, so recurecively ask back here.
|
||||||
|
empty = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
|
||||||
|
return false; // better save than sorry if we don't understand.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (nGet == 0) {
|
||||||
|
// there weren't any understandable getters, so assume not empty. May be some other primitive type.
|
||||||
|
empty = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean isEmptyList(List got) {
|
||||||
|
if (got == null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return got.size() == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isEmptyString(String string) {
|
||||||
|
if (string == null || string.length() == 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user