Skip to content
Snippets Groups Projects
Commit bccbbd7c authored by pkupczyk's avatar pkupczyk
Browse files

SSDM-2903 : V3 AS API - fix inconsistencies between Java and JS DTOs found by...

SSDM-2903 : V3 AS API - fix inconsistencies between Java and JS DTOs found by automated test (fixed 40 out of 77 problems)

SVN: 35278
parent dfa789ad
No related branches found
No related tags found
No related merge requests found
Showing
with 305 additions and 134 deletions
...@@ -4,141 +4,157 @@ ...@@ -4,141 +4,157 @@
define([ 'jquery', 'underscore', 'openbis', 'test/common' ], function($, _, openbis, common) { define([ 'jquery', 'underscore', 'openbis', 'test/common' ], function($, _, openbis, common) {
return function() { return function() {
QUnit.module("JS VS JAVA API"); QUnit.module("JS VS JAVA API");
// //
// Ignore specific Java classes giving a custom message // Ignore specific Java classes giving a custom message
// //
var getSimpleClassName = function(fullyQualifiedClassName) { var getSimpleClassName = function(fullyQualifiedClassName) {
var idx = fullyQualifiedClassName.lastIndexOf("."); var idx = fullyQualifiedClassName.lastIndexOf(".");
return fullyQualifiedClassName.substring(idx+1, fullyQualifiedClassName.length); return fullyQualifiedClassName.substring(idx + 1, fullyQualifiedClassName.length);
}; };
var ignoreMessages = { var ignoreMessages = {
"AbstractCollectionView" : "Java class ignored: ", "AbstractCollectionView" : "Java class ignored: ",
"ListView" : "Java class ignored: ", "ListView" : "Java class ignored: ",
"SetView" : "Java class ignored: ", "SetView" : "Java class ignored: ",
"NotFetchedException" : "Java class ignored: ", "NotFetchedException" : "Java class ignored: ",
"ObjectNotFoundException" : "Java class ignored: ", "ObjectNotFoundException" : "Java class ignored: ",
"UnauthorizedObjectAccessException" : "Java class ignored: ", "UnauthorizedObjectAccessException" : "Java class ignored: ",
"UnsupportedObjectIdException" : "Java class ignored: ", "UnsupportedObjectIdException" : "Java class ignored: ",
"IApplicationServerApi" : "Java class ignored: ", "IApplicationServerApi" : "Java class ignored: ",
"DataSetFileDownloadInputStream" : "Java class ignored: ", "DataSetFileDownloadInputStream" : "Java class ignored: ",
"IDataStoreServerApi" : "Java class ignored: ", "IDataStoreServerApi" : "Java class ignored: ",
"DataSetCreation" : "Java class ignored: ", "DataSetCreation" : "Java class ignored: ",
"LinkedDataCreation" : "Java class ignored: ", "LinkedDataCreation" : "Java class ignored: ",
"PhysicalDataCreation" : "Java class ignored: ", "PhysicalDataCreation" : "Java class ignored: ",
"DataSetFileDownload" : "Java class not implemented in JS: ", "DataSetFileDownload" : "Java class not implemented in JS: ",
"DataSetFileDownloadOptions" : "Java class not implemented in JS: ", "DataSetFileDownloadOptions" : "Java class not implemented in JS: ",
"DataSetFileDownloadReader" : "Java class not implemented in JS: ", "DataSetFileDownloadReader" : "Java class not implemented in JS: ",
"DataSetFileSearchCriteria" : "Java class not implemented in JS: ", "DataSetFileSearchCriteria" : "Java class not implemented in JS: ",
"DataSetFile" : "Java class not implemented in JS: ", "DataSetFile" : "Java class not implemented in JS: ",
"DataSetFilePermId" : "Java class not implemented in JS: ", "DataSetFilePermId" : "Java class not implemented in JS: ",
"IDataSetFileId" : "Java class not implemented in JS: " "IDataSetFileId" : "Java class not implemented in JS: "
} }
// //
// JS Classes contained into other classes // JS Classes contained into other classes
// //
var circularDependencies = { var circularDependencies = {
"SampleChildrenSearchCriteria" : { containerClass : "dto.sample.search.SampleSearchCriteria", method : "withChildren" }, "SampleChildrenSearchCriteria" : {
"SampleContainerSearchCriteria" : { containerClass : "dto.sample.search.SampleSearchCriteria", method : "withContainer" }, containerClass : "dto.sample.search.SampleSearchCriteria",
"SampleParentsSearchCriteria" : { containerClass : "dto.sample.search.SampleSearchCriteria", method : "withParents" }, method : "withChildren"
"DataSetChildrenSearchCriteria" : { containerClass : "dto.dataset.search.DataSetSearchCriteria", method : "withChildren" }, },
"DataSetContainerSearchCriteria" : { containerClass : "dto.dataset.search.DataSetSearchCriteria", method : "withContainer" }, "SampleContainerSearchCriteria" : {
"DataSetParentsSearchCriteria" : { containerClass : "dto.dataset.search.DataSetSearchCriteria", method : "withParents" }, containerClass : "dto.sample.search.SampleSearchCriteria",
method : "withContainer"
},
"SampleParentsSearchCriteria" : {
containerClass : "dto.sample.search.SampleSearchCriteria",
method : "withParents"
},
"DataSetChildrenSearchCriteria" : {
containerClass : "dto.dataset.search.DataSetSearchCriteria",
method : "withChildren"
},
"DataSetContainerSearchCriteria" : {
containerClass : "dto.dataset.search.DataSetSearchCriteria",
method : "withContainer"
},
"DataSetParentsSearchCriteria" : {
containerClass : "dto.dataset.search.DataSetSearchCriteria",
method : "withParents"
},
} }
// //
// Java VS JS Comparator // Java VS JS Comparator
// //
var jsComparator = function(testsResults, javaClassReport, jsObject, circularDependencyConfig) { var jsComparator = function(testsResults, javaClassReport, jsObject) {
//Check object returned // Check object returned
if(!jsObject) { if (!jsObject) {
var errorResult = "JS class missing instance: " + javaClassReport.jsonObjAnnotation; var errorResult = "JS class missing instance: " + javaClassReport.jsonObjAnnotation;
testsResults.error.push(errorResult); testsResults.error.push(errorResult);
console.info(errorResult); console.info(errorResult);
return; return;
} }
//Check prototype available var jsPrototype = null;
if(!jsObject.prototype && !circularDependencyConfig) {
if ($.isFunction(jsObject)) {
jsPrototype = jsObject.prototype;
} else {
jsPrototype = jsObject;
}
if (!jsPrototype) {
var errorResult = "JS class missing prototype: " + javaClassReport.jsonObjAnnotation; var errorResult = "JS class missing prototype: " + javaClassReport.jsonObjAnnotation;
testsResults.error.push(errorResult); testsResults.error.push(errorResult);
console.info(errorResult); console.info(errorResult);
return; return;
} }
var jsPrototype = null; // Java Fields found in Javascript
if(circularDependencyConfig) { for (var fIdx = 0; fIdx < javaClassReport.fields.length; fIdx++) {
jsPrototype = jsObject.__proto__; if (!jsPrototype[javaClassReport.fields[fIdx]]) {
}
if(jsObject.prototype) {
jsPrototype = jsObject.prototype;
}
//Java Fields found in Javascript
for(var fIdx = 0; fIdx < javaClassReport.fields.length; fIdx++) {
if(!jsPrototype[javaClassReport.fields[fIdx]]) {
var errorResult = "JS class missing field: " + javaClassReport.jsonObjAnnotation + " - " + javaClassReport.fields[fIdx]; var errorResult = "JS class missing field: " + javaClassReport.jsonObjAnnotation + " - " + javaClassReport.fields[fIdx];
testsResults.error.push(errorResult); testsResults.error.push(errorResult);
console.info(errorResult); console.info(errorResult);
} }
} }
//Java Methods found in Javascript // Java Methods found in Javascript
for(var fIdx = 0; fIdx < javaClassReport.methods.length; fIdx++) { for (var fIdx = 0; fIdx < javaClassReport.methods.length; fIdx++) {
if(!jsPrototype[javaClassReport.methods[fIdx]]) { if (!jsPrototype[javaClassReport.methods[fIdx]]) {
var errorResult = "JS class missing method: " + javaClassReport.jsonObjAnnotation + " - " + javaClassReport.methods[fIdx]; var errorResult = "JS class missing method: " + javaClassReport.jsonObjAnnotation + " - " + javaClassReport.methods[fIdx];
testsResults.error.push(errorResult); testsResults.error.push(errorResult);
console.info(errorResult); console.info(errorResult);
} }
} }
} }
// //
// Main Reporting Logic // Main Reporting Logic
// //
var areClassesCorrect = function(report, callback) { var areClassesCorrect = function(report, callback) {
var testsToDo = []; var testsToDo = [];
var testsResults = { var testsResults = {
info : [], info : [],
warning : [], warning : [],
error : [] error : []
}; };
var doNext = function() { var doNext = function() {
if(testsToDo.length > 0) { if (testsToDo.length > 0) {
var next = testsToDo.shift(); var next = testsToDo.shift();
next(); next();
} else { } else {
callback(testsResults); callback(testsResults);
} }
} }
for(var ridx = 0; ridx < report.entries.length; ridx++) { for (var ridx = 0; ridx < report.entries.length; ridx++) {
var javaClassReport = report.entries[ridx]; var javaClassReport = report.entries[ridx];
var testClassFunc = function(javaClassReport) { var testClassFunc = function(javaClassReport) {
return function () { return function() {
var javaClassName = javaClassReport.name; var javaClassName = javaClassReport.name;
var javaSimpleClassName = getSimpleClassName(javaClassName); var javaSimpleClassName = getSimpleClassName(javaClassName);
var ignoreMessage = ignoreMessages[javaSimpleClassName]; var ignoreMessage = ignoreMessages[javaSimpleClassName];
var circularDependencyConfig = circularDependencies[javaSimpleClassName]; var circularDependencyConfig = circularDependencies[javaSimpleClassName];
if(ignoreMessage) { if (ignoreMessage) {
var warningResult = ignoreMessage + javaClassReport.name; var warningResult = ignoreMessage + javaClassReport.name;
testsResults.warning.push(warningResult); testsResults.warning.push(warningResult);
console.info(warningResult); console.info(warningResult);
doNext(); doNext();
} else { } else {
var jsClassName = null; var jsClassName = null;
if(circularDependencyConfig) { if (circularDependencyConfig) {
jsClassName = circularDependencyConfig.containerClass; jsClassName = circularDependencyConfig.containerClass;
} else { } else {
jsClassName = javaClassReport.jsonObjAnnotation; jsClassName = javaClassReport.jsonObjAnnotation;
} }
if(jsClassName) { if (jsClassName) {
var failedLoadingErrorHandler = function(javaClassName) { var failedLoadingErrorHandler = function(javaClassName) {
return function() { return function() {
var errorResult = "Java class with jsonObjectAnnotation missing in Javascript: " + javaClassName; var errorResult = "Java class with jsonObjectAnnotation missing in Javascript: " + javaClassName;
...@@ -147,29 +163,29 @@ define([ 'jquery', 'underscore', 'openbis', 'test/common' ], function($, _, open ...@@ -147,29 +163,29 @@ define([ 'jquery', 'underscore', 'openbis', 'test/common' ], function($, _, open
doNext(); doNext();
}; };
}; };
var loadedHandler = null; var loadedHandler = null;
loadedHandler = function(circularDependencyConfig) { loadedHandler = function(circularDependencyConfig) {
return function(javaClassReport) { return function(javaClassReport) {
return function(jsObject) { return function(jsObject) {
if(circularDependencyConfig) { if (circularDependencyConfig) {
var instanceJSObject = new jsObject(); var instanceJSObject = new jsObject();
var containedJsObject = instanceJSObject[circularDependencyConfig.method](); var containedJsObject = instanceJSObject[circularDependencyConfig.method]();
jsObject = containedJsObject; jsObject = containedJsObject;
} }
jsComparator(testsResults, javaClassReport, jsObject, circularDependencyConfig); jsComparator(testsResults, javaClassReport, jsObject);
testsResults.info.push("Java class matching JS: " + javaClassReport.name); testsResults.info.push("Java class matching JS: " + javaClassReport.name);
doNext(); doNext();
}; };
}; };
} }
loadedHandler = loadedHandler(circularDependencyConfig); loadedHandler = loadedHandler(circularDependencyConfig);
var requireJsPath = jsClassName.replace(/\./g,'/'); var requireJsPath = jsClassName.replace(/\./g, '/');
require([requireJsPath], loadedHandler(javaClassReport), failedLoadingErrorHandler(javaClassName)); require([ requireJsPath ], loadedHandler(javaClassReport), failedLoadingErrorHandler(javaClassName));
} else { } else {
var errorResult = "Java class missing jsonObjectAnnotation: " + javaClassName; var errorResult = "Java class missing jsonObjectAnnotation: " + javaClassName;
testsResults.error.push(errorResult); testsResults.error.push(errorResult);
...@@ -181,46 +197,47 @@ define([ 'jquery', 'underscore', 'openbis', 'test/common' ], function($, _, open ...@@ -181,46 +197,47 @@ define([ 'jquery', 'underscore', 'openbis', 'test/common' ], function($, _, open
} }
testsToDo.push(testClassFunc(javaClassReport)); testsToDo.push(testClassFunc(javaClassReport));
} }
doNext(); doNext();
} }
var getPrintableReport = function(javaReport, testsResults) { var getPrintableReport = function(javaReport, testsResults) {
var printableReport = "Total Java classes found " + javaReport.entries.length; var printableReport = "Total Java classes found " + javaReport.entries.length;
printableReport += " - Javascript Error Msg: " + testsResults.error.length; printableReport += " - Javascript Error Msg: " + testsResults.error.length;
printableReport += " - Javascript Warning Msg: " + testsResults.warning.length; printableReport += " - Javascript Warning Msg: " + testsResults.warning.length;
printableReport += " - Javascript Info Msg: " + testsResults.info.length; printableReport += " - Javascript Info Msg: " + testsResults.info.length;
printableReport += "\n"; printableReport += "\n";
for(var edx = 0; edx < testsResults.error.length; edx++) { for (var edx = 0; edx < testsResults.error.length; edx++) {
printableReport += "[ERROR] " + testsResults.error[edx] + "\n"; printableReport += "[ERROR] " + testsResults.error[edx] + "\n";
} }
for(var wdx = 0; wdx < testsResults.warning.length; wdx++) { for (var wdx = 0; wdx < testsResults.warning.length; wdx++) {
printableReport += "[WARNING] " + testsResults.warning[wdx] + "\n"; printableReport += "[WARNING] " + testsResults.warning[wdx] + "\n";
} }
for(var idx = 0; idx < testsResults.info.length; idx++) { for (var idx = 0; idx < testsResults.info.length; idx++) {
printableReport += "[INFO] " + testsResults.info[idx] + "\n"; printableReport += "[INFO] " + testsResults.info[idx] + "\n";
} }
return printableReport; return printableReport;
} }
QUnit.test("get Java report from aggregation service", function(assert) { QUnit.test("get Java report from aggregation service", function(assert) {
var c = new common(assert); var c = new common(assert);
c.start(); c.start();
var getV3APIReport = function(facade) { var getV3APIReport = function(facade) {
c.getResponseFromJSTestAggregationService(facade, {"method" : "getV3APIReport"}, function(data) { c.getResponseFromJSTestAggregationService(facade, {
"method" : "getV3APIReport"
}, function(data) {
var javaReport = null; var javaReport = null;
if ( !data.error && if (!data.error && data.result.columns[0].title === "STATUS" && data.result.rows[0][0].value === "SUCCESS") { // Success
data.result.columns[0].title === "STATUS" && // Case
data.result.rows[0][0].value === "SUCCESS") { //Success Case
javaReport = JSON.parse(data.result.rows[0][1].value); javaReport = JSON.parse(data.result.rows[0][1].value);
} }
if(javaReport) { if (javaReport) {
areClassesCorrect(javaReport, function(testsResults) { areClassesCorrect(javaReport, function(testsResults) {
if(testsResults.error.length > 0) { if (testsResults.error.length > 0) {
c.fail(getPrintableReport(javaReport, testsResults)); c.fail(getPrintableReport(javaReport, testsResults));
} else { } else {
c.ok(getPrintableReport(javaReport, testsResults)); c.ok(getPrintableReport(javaReport, testsResults));
...@@ -233,7 +250,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/common' ], function($, _, open ...@@ -233,7 +250,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/common' ], function($, _, open
} }
}); });
} }
c.createFacadeAndLogin().then(getV3APIReport); c.createFacadeAndLogin().then(getV3APIReport);
}); });
} }
......
package ch.systemsx.cisd.openbis.jstest.report; package ch.systemsx.cisd.openbis.jstest.report;
/* /*
* Copyright 2015 ETH Zuerich, CISD * Copyright 2015 ETH Zuerich, CISD
* *
...@@ -17,7 +18,6 @@ package ch.systemsx.cisd.openbis.jstest.report; ...@@ -17,7 +18,6 @@ package ch.systemsx.cisd.openbis.jstest.report;
import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.lang.reflect.Modifier; import java.lang.reflect.Modifier;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -35,11 +35,12 @@ import org.reflections.util.ConfigurationBuilder; ...@@ -35,11 +35,12 @@ import org.reflections.util.ConfigurationBuilder;
import org.reflections.util.FilterBuilder; import org.reflections.util.FilterBuilder;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.collect.Collections2; import com.google.common.collect.Collections2;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.fasterxml.jackson.databind.ObjectMapper;
/** /**
* @author pkupczyk * @author pkupczyk
...@@ -114,12 +115,15 @@ public class V3APIReport ...@@ -114,12 +115,15 @@ public class V3APIReport
private String getJSONObjectAnnotation(Class<?> clazz) private String getJSONObjectAnnotation(Class<?> clazz)
{ {
Annotation[] annotations = clazz.getAnnotations(); Annotation[] annotations = clazz.getAnnotations();
for(Annotation annotation:annotations) { for (Annotation annotation : annotations)
{
Class<? extends Annotation> type = annotation.annotationType(); Class<? extends Annotation> type = annotation.annotationType();
String name = type.getName(); String name = type.getName();
if(name.equals("ch.systemsx.cisd.base.annotation.JsonObject")) { if (name.equals("ch.systemsx.cisd.base.annotation.JsonObject"))
{
for (Method method : type.getDeclaredMethods()) {
for (Method method : type.getDeclaredMethods())
{
try try
{ {
Object value = method.invoke(annotation, (Object[]) null); Object value = method.invoke(annotation, (Object[]) null);
...@@ -133,13 +137,13 @@ public class V3APIReport ...@@ -133,13 +137,13 @@ public class V3APIReport
} }
return null; return null;
} }
private Collection<Field> getPublicFields(Class<?> clazz) private Collection<Field> getPublicFields(Class<?> clazz)
{ {
Collection<Field> fields = new ArrayList<Field>(); Collection<Field> fields = new ArrayList<Field>();
for (Field field : clazz.getDeclaredFields()) for (Field field : clazz.getDeclaredFields())
{ {
if (Modifier.isPublic(field.getModifiers())) if (Modifier.isPublic(field.getModifiers()) && field.getAnnotation(JsonIgnore.class) == null)
{ {
fields.add(field); fields.add(field);
} }
...@@ -153,7 +157,7 @@ public class V3APIReport ...@@ -153,7 +157,7 @@ public class V3APIReport
for (Method method : clazz.getDeclaredMethods()) for (Method method : clazz.getDeclaredMethods())
{ {
if (Modifier.isPublic(method.getModifiers())) if (Modifier.isPublic(method.getModifiers()) && method.getAnnotation(JsonIgnore.class) == null)
{ {
methods.add(method); methods.add(method);
} }
...@@ -209,9 +213,9 @@ public class V3APIReport ...@@ -209,9 +213,9 @@ public class V3APIReport
static class Entry static class Entry
{ {
private String Name; private String Name;
private String jsonObjAnnotation; private String jsonObjAnnotation;
private List<String> fields = new ArrayList<String>(); private List<String> fields = new ArrayList<String>();
private List<String> methods = new ArrayList<String>(); private List<String> methods = new ArrayList<String>();
...@@ -227,7 +231,6 @@ public class V3APIReport ...@@ -227,7 +231,6 @@ public class V3APIReport
return this.Name; return this.Name;
} }
public String getJsonObjAnnotation() public String getJsonObjAnnotation()
{ {
return this.jsonObjAnnotation; return this.jsonObjAnnotation;
......
define([ "stjs" ], function(stjs) {
var Enum = function(values) {
var thisEnum = this;
this.values = values;
values.forEach(function(value) {
thisEnum[value] = value;
});
};
stjs.extend(Enum, null, [], function(constructor, prototype) {
prototype.values = function() {
return this.values;
};
}, {});
return Enum;
})
\ No newline at end of file
/** /**
* @author pkupczyk * @author pkupczyk
*/ */
define([ "stjs" ], function(stjs) {
return { define([ "stjs", "dto/common/Enum" ], function(stjs, Enum) {
NO_CACHE : "NO_CACHE", var CacheMode = function() {
CACHE : "CACHE", Enum.call(this, [ "NO_CACHE", "CACHE", "RELOAD_AND_CACHE" ]);
RELOAD_AND_CACHE : "RELOAD_AND_CACHE"
}; };
stjs.extend(CacheMode, Enum, [ Enum ], function(constructor, prototype) {
}, {});
return new CacheMode();
}) })
define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
var IAttachmentsHolder = function() {
};
stjs.extend(IAttachmentsHolder, null, [], function(constructor, prototype) {
prototype.getAttachments = function() {
throw new exceptions.RuntimeException("Interface method.");
};
}, {});
return IAttachmentsHolder;
})
\ No newline at end of file
define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
var ICodeHolder = function() {
};
stjs.extend(ICodeHolder, null, [], function(constructor, prototype) {
prototype.getCode = function() {
throw new exceptions.RuntimeException("Interface method.");
};
}, {});
return ICodeHolder;
})
\ No newline at end of file
define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
var ICreationIdHolder = function() {
};
stjs.extend(ICreationIdHolder, null, [], function(constructor, prototype) {
prototype.getCreationId = function() {
throw new exceptions.RuntimeException("Interface method.");
};
}, {});
return ICreationIdHolder;
})
\ No newline at end of file
define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
var IModificationDateHolder = function() {
};
stjs.extend(IModificationDateHolder, null, [], function(constructor, prototype) {
prototype.getModificationDate = function() {
throw new exceptions.RuntimeException("Interface method.");
};
}, {});
return IModificationDateHolder;
})
\ No newline at end of file
define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
var IModifierHolder = function() {
};
stjs.extend(IModifierHolder, null, [], function(constructor, prototype) {
prototype.getModifier = function() {
throw new exceptions.RuntimeException("Interface method.");
};
}, {});
return IModifierHolder;
})
\ No newline at end of file
define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
var IParentChildrenHolder = function() {
};
stjs.extend(IParentChildrenHolder, null, [], function(constructor, prototype) {
prototype.getChildren = function() {
throw new exceptions.RuntimeException("Interface method.");
};
prototype.getParents = function() {
throw new exceptions.RuntimeException("Interface method.");
};
}, {});
return IParentChildrenHolder;
})
\ No newline at end of file
define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
var IPermIdHolder = function() {
};
stjs.extend(IPermIdHolder, null, [], function(constructor, prototype) {
prototype.getPermId = function() {
throw new exceptions.RuntimeException("Interface method.");
};
}, {});
return IPermIdHolder;
})
\ No newline at end of file
define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
var IPropertiesHolder = function() {
};
stjs.extend(IPropertiesHolder, null, [], function(constructor, prototype) {
prototype.getProperty = function() {
throw new exceptions.RuntimeException("Interface method.");
};
prototype.getProperties = function() {
throw new exceptions.RuntimeException("Interface method.");
};
prototype.getMaterialProperties = function() {
throw new exceptions.RuntimeException("Interface method.");
};
prototype.getMaterialProperty = function() {
throw new exceptions.RuntimeException("Interface method.");
};
}, {});
return IPropertiesHolder;
})
\ No newline at end of file
define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
var IRegistrationDateHolder = function() {
};
stjs.extend(IRegistrationDateHolder, null, [], function(constructor, prototype) {
prototype.getRegistrationDate = function() {
throw new exceptions.RuntimeException("Interface method.");
};
}, {});
return IRegistrationDateHolder;
})
\ No newline at end of file
define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
var IRegistratorHolder = function() {
};
stjs.extend(IRegistratorHolder, null, [], function(constructor, prototype) {
prototype.getRegistrator = function() {
throw new exceptions.RuntimeException("Interface method.");
};
}, {});
return IRegistratorHolder;
})
\ No newline at end of file
define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
var ISpaceHolder = function() {
};
stjs.extend(ISpaceHolder, null, [], function(constructor, prototype) {
prototype.getSpace = function() {
throw new exceptions.RuntimeException("Interface method.");
};
}, {});
return ISpaceHolder;
})
\ No newline at end of file
define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
var ITagsHolder = function() {
};
stjs.extend(ITagsHolder, null, [], function(constructor, prototype) {
prototype.getTags = function() {
throw new exceptions.RuntimeException("Interface method.");
};
}, {});
return ITagsHolder;
})
\ No newline at end of file
/** define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
* @author pkupczyk
*/
define([ "stjs" ], function(stjs) {
var IDateFormat = function() { var IDateFormat = function() {
}; };
stjs.extend(IDateFormat, null, [], null, {}); stjs.extend(IDateFormat, null, [], function(constructor, prototype) {
prototype.getFormat = function() {
throw new exceptions.RuntimeException("Interface method.");
};
}, {});
return IDateFormat; return IDateFormat;
}) })
\ No newline at end of file
/** /**
* @author pkupczyk * @author pkupczyk
*/ */
define([ "stjs" ], function(stjs) {
return { define([ "stjs", "dto/common/Enum" ], function(stjs, Enum) {
PROPERTY : "PROPERTY", var SearchFieldType = function() {
ATTRIBUTE : "ATTRIBUTE", Enum.call(this, [ "PROPERTY", "ATTRIBUTE", "ANY_PROPERTY", "ANY_FIELD" ]);
ANY_PROPERTY : "ANY_PROPERTY",
ANY_FIELD : "ANY_FIELD"
}; };
stjs.extend(SearchFieldType, Enum, [ Enum ], function(constructor, prototype) {
}, {});
return new SearchFieldType();
}) })
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment