![JAR search and dependency download from the Maven repository](/logo.png)
org.openl.CompiledOpenClass Maven / Gradle / Ivy
/**
* Created Jan 11, 2007
*/
package org.openl;
import java.util.List;
import java.util.Map;
import org.openl.classloader.OpenLClassLoaderHelper;
import org.openl.message.OpenLMessage;
import org.openl.message.OpenLMessagesUtils;
import org.openl.message.Severity;
import org.openl.syntax.exception.CompositeOpenlException;
import org.openl.syntax.exception.SyntaxNodeException;
import org.openl.types.IOpenClass;
/**
* Handles {@link IOpenClass}
with parsing and compiled errors.
*
* @author snshor
*
*/
public class CompiledOpenClass {
private SyntaxNodeException[] parsingErrors;
private SyntaxNodeException[] bindingErrors;
private List messages;
private IOpenClass openClass;
private ClassLoader classLoader;
public CompiledOpenClass(IOpenClass openClass,
List messages,
SyntaxNodeException[] parsingErrors,
SyntaxNodeException[] bindingErrors) {
this.openClass = openClass;
this.parsingErrors = parsingErrors;
this.bindingErrors = bindingErrors;
this.messages = messages;
this.classLoader = OpenLClassLoaderHelper.getContextClassLoader();
}
@Deprecated
public SyntaxNodeException[] getBindingErrors() {
return bindingErrors;
}
public IOpenClass getOpenClass() {
throwErrorExceptionsIfAny();
return openClass;
}
public IOpenClass getOpenClassWithErrors() {
return openClass;
}
@Deprecated
public SyntaxNodeException[] getParsingErrors() {
return parsingErrors;
}
public boolean hasErrors() {
List errorMessages = getErrorMessages();
return (parsingErrors.length > 0) || (bindingErrors.length > 0) ||
(errorMessages != null && !errorMessages.isEmpty());
}
private List getErrorMessages() {
return OpenLMessagesUtils.filterMessagesBySeverity(getMessages(), Severity.ERROR);
}
public void throwErrorExceptionsIfAny() {
if (parsingErrors.length > 0) {
throw new CompositeOpenlException("Parsing Error(s):", parsingErrors, getErrorMessages());
}
if (bindingErrors.length > 0) {
throw new CompositeOpenlException("Binding Error(s):", bindingErrors, getErrorMessages());
}
if (getErrorMessages().size() > 0) {
throw new CompositeOpenlException("Module contains critical errors", null, getErrorMessages());
}
}
public List getMessages() {
return messages;
}
public Map getTypes() {
if (openClass == null) {
return null;
}
return openClass.getTypes();
}
public ClassLoader getClassLoader() {
return classLoader;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy