| /** |
| * Copyright (c) 2011, 2018 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) |
| * |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License 2.0 |
| * which accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * Contributors: |
| * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation |
| * |
| * generated by Xtext 2.11.0 |
| */ |
| package org.eclipse.osbp.xtext.signal.jvmmodel; |
| |
| import com.google.common.base.Objects; |
| import java.nio.file.Path; |
| import java.util.Arrays; |
| import java.util.Date; |
| import java.util.HashSet; |
| import javax.inject.Inject; |
| import org.eclipse.emf.common.util.EList; |
| import org.eclipse.emf.ecore.EObject; |
| import org.eclipse.osbp.core.api.persistence.IPersistenceService; |
| import org.eclipse.osbp.datainterchange.api.IDataInterchange; |
| import org.eclipse.osbp.dsl.common.xtext.extensions.AnnotationExtension; |
| import org.eclipse.osbp.runtime.common.event.IEventDispatcher; |
| import org.eclipse.osbp.ui.api.customfields.IBlobService; |
| import org.eclipse.osbp.xtext.datainterchange.DataInterchange; |
| import org.eclipse.osbp.xtext.datainterchange.DataInterchangeGroup; |
| import org.eclipse.osbp.xtext.datainterchange.common.WorkerThreadRunnable; |
| import org.eclipse.osbp.xtext.datainterchange.jvmmodel.DataDSLJvmModelInferrer; |
| import org.eclipse.osbp.xtext.datainterchange.validation.DataDSLValidator; |
| import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryPackage; |
| import org.eclipse.osbp.xtext.signal.CronScheduler; |
| import org.eclipse.osbp.xtext.signal.DailyScheduler; |
| import org.eclipse.osbp.xtext.signal.HourlyScheduler; |
| import org.eclipse.osbp.xtext.signal.MonthlyScheduler; |
| import org.eclipse.osbp.xtext.signal.SchedulerType; |
| import org.eclipse.osbp.xtext.signal.SignalActionTypeEnum; |
| import org.eclipse.osbp.xtext.signal.SignalDSLPackage; |
| import org.eclipse.osbp.xtext.signal.SignalDatainterchange; |
| import org.eclipse.osbp.xtext.signal.SignalDefinition; |
| import org.eclipse.osbp.xtext.signal.SignalExecutionTypeEnum; |
| import org.eclipse.osbp.xtext.signal.SignalFunction; |
| import org.eclipse.osbp.xtext.signal.SignalPackage; |
| import org.eclipse.osbp.xtext.signal.SignalScheduler; |
| import org.eclipse.osbp.xtext.signal.SignalTask; |
| import org.eclipse.osbp.xtext.signal.SignalWatcher; |
| import org.eclipse.osbp.xtext.signal.WeeklyScheduler; |
| import org.eclipse.osbp.xtext.signal.common.SchedulerImpl; |
| import org.eclipse.osbp.xtext.signal.common.SchedulerJobImpl; |
| import org.eclipse.osbp.xtext.signal.common.WatcherImpl; |
| import org.eclipse.osbp.xtext.signal.common.WatcherJobImpl; |
| import org.eclipse.xtend2.lib.StringConcatenation; |
| import org.eclipse.xtend2.lib.StringConcatenationClient; |
| import org.eclipse.xtext.common.types.JvmAnnotationReference; |
| import org.eclipse.xtext.common.types.JvmConstructor; |
| import org.eclipse.xtext.common.types.JvmField; |
| import org.eclipse.xtext.common.types.JvmFormalParameter; |
| import org.eclipse.xtext.common.types.JvmGenericType; |
| import org.eclipse.xtext.common.types.JvmMember; |
| import org.eclipse.xtext.common.types.JvmOperation; |
| import org.eclipse.xtext.common.types.JvmTypeReference; |
| import org.eclipse.xtext.common.types.JvmVisibility; |
| import org.eclipse.xtext.naming.IQualifiedNameProvider; |
| import org.eclipse.xtext.naming.QualifiedName; |
| import org.eclipse.xtext.xbase.compiler.output.ITreeAppendable; |
| import org.eclipse.xtext.xbase.jvmmodel.AbstractModelInferrer; |
| import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor; |
| import org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder; |
| import org.eclipse.xtext.xbase.lib.CollectionLiterals; |
| import org.eclipse.xtext.xbase.lib.Extension; |
| import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; |
| import org.eclipse.xtext.xbase.lib.StringExtensions; |
| import org.osgi.service.component.annotations.Activate; |
| import org.osgi.service.component.annotations.Component; |
| import org.osgi.service.component.annotations.Deactivate; |
| import org.osgi.service.component.annotations.Reference; |
| import org.osgi.service.component.annotations.ReferenceCardinality; |
| import org.osgi.service.component.annotations.ReferencePolicy; |
| import org.quartz.Job; |
| import org.quartz.JobDetail; |
| import org.quartz.JobExecutionContext; |
| import org.quartz.JobExecutionException; |
| import org.quartz.Scheduler; |
| import org.quartz.SchedulerException; |
| import org.quartz.Trigger; |
| import org.slf4j.Logger; |
| |
| /** |
| * <p>Infers a JVM model from the source model.</p> |
| * |
| * <p>The JVM model should contain all elements that would appear in the Java code |
| * which is generated from the source model. Other models link against the JVM model rather than the source model.</p> |
| */ |
| @SuppressWarnings("all") |
| public class SignalDSLJvmModelInferrer extends AbstractModelInferrer { |
| /** |
| * convenience API to build and initialize JVM types and their members. |
| */ |
| @Inject |
| @Extension |
| private JvmTypesBuilder _jvmTypesBuilder; |
| |
| @Inject |
| @Extension |
| private IQualifiedNameProvider _iQualifiedNameProvider; |
| |
| @Inject |
| @Extension |
| private AnnotationExtension _annotationExtension; |
| |
| @Inject |
| @Extension |
| private DataDSLJvmModelInferrer df; |
| |
| @Inject |
| @Extension |
| private DataDSLValidator dv; |
| |
| private HashSet<String> operationlist = CollectionLiterals.<String>newHashSet(); |
| |
| /** |
| * infer model on package base. Will be called for every defined package. |
| * |
| * @param dataInterchangePackage |
| * An instance of {@link SignalDSLPackage} |
| * @param acceptor |
| * the xtext acceptor interface |
| * @param isPreIndexingPhase |
| * true if in preindexing phase |
| */ |
| protected void _infer(final SignalPackage signalPackage, final IJvmDeclaredTypeAcceptor acceptor, final boolean isPreIndexingPhase) { |
| final String pckgName = signalPackage.getName(); |
| EList<SignalDefinition> _signals = signalPackage.getSignals(); |
| for (final SignalDefinition signal : _signals) { |
| if ((((signal != null) && (signal.getTasks() != null)) && (!signal.getTasks().isEmpty()))) { |
| JvmGenericType signalClass = this._jvmTypesBuilder.toClass(signal, this._iQualifiedNameProvider.getFullyQualifiedName(signal)); |
| if ((signal instanceof SignalWatcher)) { |
| String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName()); |
| String _plus = (_firstUpper + "Watcher"); |
| signalClass.setSimpleName(_plus); |
| JvmGenericType signalWatcherJobClass = this._jvmTypesBuilder.toClass(signal, this._iQualifiedNameProvider.getFullyQualifiedName(signal)); |
| String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName()); |
| String _plus_1 = (_firstUpper_1 + "WatcherJob"); |
| signalWatcherJobClass.setSimpleName(_plus_1); |
| signalWatcherJobClass.setPackageName(pckgName); |
| final Procedure1<JvmGenericType> _function = (JvmGenericType it) -> { |
| EList<JvmTypeReference> _superTypes = it.getSuperTypes(); |
| JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(WatcherJobImpl.class); |
| this._jvmTypesBuilder.<JvmTypeReference>operator_add(_superTypes, _typeRef); |
| String _firstUpper_2 = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName()); |
| String _plus_2 = ("Implements the list of tasks of " + _firstUpper_2); |
| String _plus_3 = (_plus_2 + "Watcher to be executed."); |
| this._jvmTypesBuilder.setDocumentation(it, _plus_3); |
| this.toWatcherJobFields(it, ((SignalWatcher)signal)); |
| this.toWatcherJobOperations(it, ((SignalWatcher)signal)); |
| }; |
| acceptor.<JvmGenericType>accept(signalWatcherJobClass, _function); |
| } else { |
| if ((signal instanceof SignalScheduler)) { |
| String _firstUpper_2 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName()); |
| String _plus_2 = (_firstUpper_2 + "Scheduler"); |
| signalClass.setSimpleName(_plus_2); |
| JvmGenericType signalSchedulerJobClass = this._jvmTypesBuilder.toClass(signal, this._iQualifiedNameProvider.getFullyQualifiedName(signal)); |
| String _firstUpper_3 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName()); |
| String _plus_3 = (_firstUpper_3 + "SchedulerJob"); |
| signalSchedulerJobClass.setSimpleName(_plus_3); |
| signalSchedulerJobClass.setPackageName(pckgName); |
| final Procedure1<JvmGenericType> _function_1 = (JvmGenericType it) -> { |
| EList<JvmTypeReference> _superTypes = it.getSuperTypes(); |
| JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(SchedulerJobImpl.class); |
| this._jvmTypesBuilder.<JvmTypeReference>operator_add(_superTypes, _typeRef); |
| String _firstUpper_4 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName()); |
| String _plus_4 = ("Implements the list of tasks of " + _firstUpper_4); |
| String _plus_5 = (_plus_4 + "Scheduler to be executed."); |
| this._jvmTypesBuilder.setDocumentation(it, _plus_5); |
| this.toSchedulerJobFields(it, ((SignalScheduler)signal)); |
| this.toSchedulerJobOperations(it, ((SignalScheduler)signal)); |
| }; |
| acceptor.<JvmGenericType>accept(signalSchedulerJobClass, _function_1); |
| } |
| } |
| signalClass.setPackageName(pckgName); |
| final Procedure1<JvmGenericType> _function_2 = (JvmGenericType it) -> { |
| if ((signal instanceof SignalWatcher)) { |
| EList<JvmTypeReference> _superTypes = it.getSuperTypes(); |
| JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(WatcherImpl.class); |
| this._jvmTypesBuilder.<JvmTypeReference>operator_add(_superTypes, _typeRef); |
| } else { |
| if ((signal instanceof SignalScheduler)) { |
| EList<JvmTypeReference> _superTypes_1 = it.getSuperTypes(); |
| JvmTypeReference _typeRef_1 = this._typeReferenceBuilder.typeRef(SchedulerImpl.class); |
| this._jvmTypesBuilder.<JvmTypeReference>operator_add(_superTypes_1, _typeRef_1); |
| EList<JvmTypeReference> _superTypes_2 = it.getSuperTypes(); |
| JvmTypeReference _typeRef_2 = this._typeReferenceBuilder.typeRef(Job.class); |
| this._jvmTypesBuilder.<JvmTypeReference>operator_add(_superTypes_2, _typeRef_2); |
| } |
| } |
| JvmAnnotationReference annotationRef = this._annotationTypesBuilder.annotationRef(Component.class); |
| this._annotationExtension.addAnnAttr(annotationRef, signalPackage, "immediate", Boolean.TRUE); |
| EList<JvmAnnotationReference> _annotations = it.getAnnotations(); |
| this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, annotationRef); |
| this._jvmTypesBuilder.setFileHeader(it, this._jvmTypesBuilder.getDocumentation(signalPackage)); |
| this.toFields(it, signal); |
| this.toConstructor(it, signal); |
| this.toOperations(it, signal); |
| this.toBinderOperations(it, signal); |
| }; |
| acceptor.<JvmGenericType>accept(signalClass, _function_2); |
| } |
| } |
| } |
| |
| public void toSchedulerJobOperations(final JvmGenericType type, final SignalScheduler scheduler) { |
| EList<JvmMember> _members = type.getMembers(); |
| final Procedure1<JvmConstructor> _function = (JvmConstructor it) -> { |
| EList<JvmFormalParameter> _parameters = it.getParameters(); |
| JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(scheduler, "persistenceService", this._typeReferenceBuilder.typeRef(IPersistenceService.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter); |
| EList<JvmFormalParameter> _parameters_1 = it.getParameters(); |
| JvmFormalParameter _parameter_1 = this._jvmTypesBuilder.toParameter(scheduler, "dataInterchange", this._typeReferenceBuilder.typeRef(IDataInterchange.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1); |
| EList<JvmFormalParameter> _parameters_2 = it.getParameters(); |
| JvmFormalParameter _parameter_2 = this._jvmTypesBuilder.toParameter(scheduler, "blobService", this._typeReferenceBuilder.typeRef(IBlobService.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_2, _parameter_2); |
| EList<JvmFormalParameter> _parameters_3 = it.getParameters(); |
| JvmFormalParameter _parameter_3 = this._jvmTypesBuilder.toParameter(scheduler, "eventDispatcher", this._typeReferenceBuilder.typeRef(IEventDispatcher.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_3, _parameter_3); |
| EList<JvmFormalParameter> _parameters_4 = it.getParameters(); |
| JvmFormalParameter _parameter_4 = this._jvmTypesBuilder.toParameter(scheduler, "schedulerid", this._typeReferenceBuilder.typeRef(String.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_4, _parameter_4); |
| final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("this.persistenceService = persistenceService;"); |
| _builder.newLine(); |
| _builder.append("this.dataInterchange = dataInterchange;"); |
| _builder.newLine(); |
| _builder.append("this.blobService = blobService;"); |
| _builder.newLine(); |
| _builder.append("this.eventDispatcher = eventDispatcher;"); |
| _builder.newLine(); |
| _builder.append("setSchedulerId(schedulerid);"); |
| _builder.newLine(); |
| { |
| boolean _hasFunctionWithFile = this.hasFunctionWithFile(scheduler); |
| if (_hasFunctionWithFile) { |
| _builder.append("paths = new HashMap<String, Path>();"); |
| _builder.newLineIfNotEmpty(); |
| } |
| } |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_1); |
| }; |
| JvmConstructor _constructor = this._jvmTypesBuilder.toConstructor(scheduler, _function); |
| this._jvmTypesBuilder.<JvmConstructor>operator_add(_members, _constructor); |
| EList<JvmMember> _members_1 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_1 = (JvmOperation it) -> { |
| EList<JvmAnnotationReference> _annotations = it.getAnnotations(); |
| JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Override.class); |
| this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef); |
| final Procedure1<ITreeAppendable> _function_2 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| String _executeSchedulerTasksList = this.executeSchedulerTasksList(scheduler); |
| _builder.append(_executeSchedulerTasksList); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_2); |
| }; |
| JvmOperation _method = this._jvmTypesBuilder.toMethod(scheduler, "executeListOfTasks", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_1); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method); |
| this.operationlist.clear(); |
| this.createTaskOperations(type, scheduler); |
| } |
| |
| public void toSchedulerJobFields(final JvmGenericType type, final SignalScheduler signal) { |
| JvmField field = null; |
| field = this._jvmTypesBuilder.toField(signal, "log", this._typeReferenceBuilder.typeRef(Logger.class)); |
| field.setVisibility(JvmVisibility.PRIVATE); |
| this._jvmTypesBuilder.setDocumentation(field, "the log"); |
| StringConcatenationClient _client = new StringConcatenationClient() { |
| @Override |
| protected void appendTo(StringConcatenationClient.TargetStringConcatenation _builder) { |
| _builder.append("LoggerFactory.getLogger(\"signal\")"); |
| } |
| }; |
| this._jvmTypesBuilder.setInitializer(field, _client); |
| EList<JvmMember> _members = type.getMembers(); |
| this._jvmTypesBuilder.<JvmField>operator_add(_members, field); |
| field = this._jvmTypesBuilder.toField(signal, "persistenceService", this._typeReferenceBuilder.typeRef(IPersistenceService.class)); |
| field.setStatic(true); |
| field.setVisibility(JvmVisibility.PRIVATE); |
| EList<JvmMember> _members_1 = type.getMembers(); |
| this._jvmTypesBuilder.<JvmField>operator_add(_members_1, field); |
| field = this._jvmTypesBuilder.toField(signal, "dataInterchange", this._typeReferenceBuilder.typeRef(IDataInterchange.class)); |
| field.setStatic(true); |
| field.setVisibility(JvmVisibility.PRIVATE); |
| EList<JvmMember> _members_2 = type.getMembers(); |
| this._jvmTypesBuilder.<JvmField>operator_add(_members_2, field); |
| field = this._jvmTypesBuilder.toField(signal, "blobService", this._typeReferenceBuilder.typeRef(IBlobService.class)); |
| field.setStatic(true); |
| field.setVisibility(JvmVisibility.PRIVATE); |
| EList<JvmMember> _members_3 = type.getMembers(); |
| this._jvmTypesBuilder.<JvmField>operator_add(_members_3, field); |
| field = this._jvmTypesBuilder.toField(signal, "eventDispatcher", this._typeReferenceBuilder.typeRef(IEventDispatcher.class)); |
| field.setStatic(true); |
| field.setVisibility(JvmVisibility.PRIVATE); |
| EList<JvmMember> _members_4 = type.getMembers(); |
| this._jvmTypesBuilder.<JvmField>operator_add(_members_4, field); |
| boolean _hasFunctionWithFile = this.hasFunctionWithFile(signal); |
| if (_hasFunctionWithFile) { |
| field = this._jvmTypesBuilder.toField(signal, "paths", this._typeReferenceBuilder.typeRef("HashMap<String,Path>")); |
| field.setVisibility(JvmVisibility.PRIVATE); |
| field.setStatic(true); |
| EList<JvmMember> _members_5 = type.getMembers(); |
| this._jvmTypesBuilder.<JvmField>operator_add(_members_5, field); |
| } |
| } |
| |
| public void toWatcherJobOperations(final JvmGenericType type, final SignalWatcher watcher) { |
| EList<JvmMember> _members = type.getMembers(); |
| final Procedure1<JvmConstructor> _function = (JvmConstructor it) -> { |
| EList<JvmFormalParameter> _parameters = it.getParameters(); |
| JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(watcher, "persistenceService", this._typeReferenceBuilder.typeRef(IPersistenceService.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter); |
| EList<JvmFormalParameter> _parameters_1 = it.getParameters(); |
| JvmFormalParameter _parameter_1 = this._jvmTypesBuilder.toParameter(watcher, "dataInterchange", this._typeReferenceBuilder.typeRef(IDataInterchange.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1); |
| EList<JvmFormalParameter> _parameters_2 = it.getParameters(); |
| JvmFormalParameter _parameter_2 = this._jvmTypesBuilder.toParameter(watcher, "blobService", this._typeReferenceBuilder.typeRef(IBlobService.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_2, _parameter_2); |
| EList<JvmFormalParameter> _parameters_3 = it.getParameters(); |
| JvmFormalParameter _parameter_3 = this._jvmTypesBuilder.toParameter(watcher, "eventDispatcher", this._typeReferenceBuilder.typeRef(IEventDispatcher.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_3, _parameter_3); |
| EList<JvmFormalParameter> _parameters_4 = it.getParameters(); |
| JvmFormalParameter _parameter_4 = this._jvmTypesBuilder.toParameter(watcher, "file", this._typeReferenceBuilder.typeRef(Path.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_4, _parameter_4); |
| EList<JvmFormalParameter> _parameters_5 = it.getParameters(); |
| JvmFormalParameter _parameter_5 = this._jvmTypesBuilder.toParameter(watcher, "watcherid", this._typeReferenceBuilder.typeRef(String.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_5, _parameter_5); |
| final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("this.persistenceService = persistenceService;"); |
| _builder.newLine(); |
| _builder.append("this.dataInterchange = dataInterchange;"); |
| _builder.newLine(); |
| _builder.append("this.blobService = blobService;"); |
| _builder.newLine(); |
| _builder.append("this.eventDispatcher = eventDispatcher;"); |
| _builder.newLine(); |
| CharSequence _xifexpression = null; |
| boolean _isHasFileMask = watcher.isHasFileMask(); |
| if (_isHasFileMask) { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| _builder_1.append("setParallelJobExecutionAllowed(true);"); |
| _xifexpression = _builder_1; |
| } |
| _builder.append(_xifexpression); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("setTriggerfile(file);"); |
| _builder.newLine(); |
| _builder.append("setWatcherId(watcherid);"); |
| _builder.newLine(); |
| { |
| boolean _hasFunctionWithFile = this.hasFunctionWithFile(watcher); |
| if (_hasFunctionWithFile) { |
| _builder.append("paths = new HashMap<String, Path>();"); |
| _builder.newLineIfNotEmpty(); |
| } |
| } |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_1); |
| }; |
| JvmConstructor _constructor = this._jvmTypesBuilder.toConstructor(watcher, _function); |
| this._jvmTypesBuilder.<JvmConstructor>operator_add(_members, _constructor); |
| EList<JvmMember> _members_1 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_1 = (JvmOperation it) -> { |
| EList<JvmAnnotationReference> _annotations = it.getAnnotations(); |
| JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Override.class); |
| this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef); |
| final Procedure1<ITreeAppendable> _function_2 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| String _executeWatcherTasksList = this.executeWatcherTasksList(watcher); |
| _builder.append(_executeWatcherTasksList); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_2); |
| }; |
| JvmOperation _method = this._jvmTypesBuilder.toMethod(watcher, "executeListOfTasks", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_1); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method); |
| HashSet<String> _hashSet = new HashSet<String>(); |
| this.operationlist = _hashSet; |
| this.createTaskOperations(type, watcher); |
| } |
| |
| public void toWatcherJobFields(final JvmGenericType type, final SignalWatcher signal) { |
| JvmField field = null; |
| field = this._jvmTypesBuilder.toField(signal, "log", this._typeReferenceBuilder.typeRef(Logger.class)); |
| field.setVisibility(JvmVisibility.PRIVATE); |
| this._jvmTypesBuilder.setDocumentation(field, "the log"); |
| StringConcatenationClient _client = new StringConcatenationClient() { |
| @Override |
| protected void appendTo(StringConcatenationClient.TargetStringConcatenation _builder) { |
| _builder.append("LoggerFactory.getLogger(\"signal\")"); |
| } |
| }; |
| this._jvmTypesBuilder.setInitializer(field, _client); |
| EList<JvmMember> _members = type.getMembers(); |
| this._jvmTypesBuilder.<JvmField>operator_add(_members, field); |
| field = this._jvmTypesBuilder.toField(signal, "persistenceService", this._typeReferenceBuilder.typeRef(IPersistenceService.class)); |
| field.setStatic(true); |
| field.setVisibility(JvmVisibility.PRIVATE); |
| EList<JvmMember> _members_1 = type.getMembers(); |
| this._jvmTypesBuilder.<JvmField>operator_add(_members_1, field); |
| field = this._jvmTypesBuilder.toField(signal, "dataInterchange", this._typeReferenceBuilder.typeRef(IDataInterchange.class)); |
| field.setStatic(true); |
| field.setVisibility(JvmVisibility.PRIVATE); |
| EList<JvmMember> _members_2 = type.getMembers(); |
| this._jvmTypesBuilder.<JvmField>operator_add(_members_2, field); |
| field = this._jvmTypesBuilder.toField(signal, "blobService", this._typeReferenceBuilder.typeRef(IBlobService.class)); |
| field.setStatic(true); |
| field.setVisibility(JvmVisibility.PRIVATE); |
| EList<JvmMember> _members_3 = type.getMembers(); |
| this._jvmTypesBuilder.<JvmField>operator_add(_members_3, field); |
| field = this._jvmTypesBuilder.toField(signal, "eventDispatcher", this._typeReferenceBuilder.typeRef(IEventDispatcher.class)); |
| field.setStatic(true); |
| field.setVisibility(JvmVisibility.PRIVATE); |
| EList<JvmMember> _members_4 = type.getMembers(); |
| this._jvmTypesBuilder.<JvmField>operator_add(_members_4, field); |
| boolean _hasFunctionWithFile = this.hasFunctionWithFile(signal); |
| if (_hasFunctionWithFile) { |
| field = this._jvmTypesBuilder.toField(signal, "paths", this._typeReferenceBuilder.typeRef("HashMap<String,Path>")); |
| field.setVisibility(JvmVisibility.PRIVATE); |
| field.setStatic(true); |
| EList<JvmMember> _members_5 = type.getMembers(); |
| this._jvmTypesBuilder.<JvmField>operator_add(_members_5, field); |
| } |
| } |
| |
| public void toBinderOperations(final JvmGenericType type, final SignalDefinition signal) { |
| EList<JvmMember> _members = type.getMembers(); |
| final Procedure1<JvmOperation> _function = (JvmOperation it) -> { |
| it.setVisibility(JvmVisibility.PUBLIC); |
| it.setStatic(true); |
| final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("return dataInterchange;"); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_1); |
| }; |
| JvmOperation _method = this._jvmTypesBuilder.toMethod(signal, "getDataInterchange", this._typeReferenceBuilder.typeRef(IDataInterchange.class), _function); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method); |
| EList<JvmMember> _members_1 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_1 = (JvmOperation it) -> { |
| it.setVisibility(JvmVisibility.PUBLIC); |
| it.setStatic(true); |
| final Procedure1<ITreeAppendable> _function_2 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("return blobService;"); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_2); |
| }; |
| JvmOperation _method_1 = this._jvmTypesBuilder.toMethod(signal, "getBlobService", this._typeReferenceBuilder.typeRef(IBlobService.class), _function_1); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method_1); |
| EList<JvmMember> _members_2 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_2 = (JvmOperation it) -> { |
| it.setVisibility(JvmVisibility.PUBLIC); |
| it.setStatic(true); |
| final Procedure1<ITreeAppendable> _function_3 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("return eventDispatcher;"); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_3); |
| }; |
| JvmOperation _method_2 = this._jvmTypesBuilder.toMethod(signal, "getEventDispatcher", this._typeReferenceBuilder.typeRef(IEventDispatcher.class), _function_2); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_2, _method_2); |
| EList<JvmMember> _members_3 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_3 = (JvmOperation it) -> { |
| it.setVisibility(JvmVisibility.PUBLIC); |
| it.setStatic(true); |
| final Procedure1<ITreeAppendable> _function_4 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("return persistenceService;"); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_4); |
| }; |
| JvmOperation _method_3 = this._jvmTypesBuilder.toMethod(signal, "getPersistenceService", this._typeReferenceBuilder.typeRef(IPersistenceService.class), _function_3); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_3, _method_3); |
| EList<JvmMember> _members_4 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_4 = (JvmOperation it) -> { |
| JvmAnnotationReference annotationRef = this._annotationTypesBuilder.annotationRef(Reference.class); |
| this._annotationExtension.addAnnAttr(annotationRef, signal, "cardinality", ReferenceCardinality.MANDATORY); |
| this._annotationExtension.addAnnAttr(annotationRef, signal, "policy", ReferencePolicy.STATIC); |
| EList<JvmAnnotationReference> _annotations = it.getAnnotations(); |
| this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, annotationRef); |
| it.setVisibility(JvmVisibility.PUBLIC); |
| it.setSynchronized(true); |
| EList<JvmFormalParameter> _parameters = it.getParameters(); |
| JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "dataInterchange", this._typeReferenceBuilder.typeRef(IDataInterchange.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter); |
| final Procedure1<ITreeAppendable> _function_5 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("this.dataInterchange = dataInterchange;"); |
| _builder.newLine(); |
| CharSequence _xifexpression = null; |
| if ((signal instanceof SignalWatcher)) { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| _builder_1.append("log.info(\""); |
| String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName()); |
| String _plus = (_firstUpper + "Watcher"); |
| _builder_1.append(_plus); |
| _builder_1.append(" - DataInterchange bound\");"); |
| _xifexpression = _builder_1; |
| } else { |
| CharSequence _xifexpression_1 = null; |
| if ((signal instanceof SignalScheduler)) { |
| StringConcatenation _builder_2 = new StringConcatenation(); |
| _builder_2.append("log.info(\""); |
| String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName()); |
| String _plus_1 = (_firstUpper_1 + "Scheduler"); |
| _builder_2.append(_plus_1); |
| _builder_2.append(" - DataInterchange bound\");"); |
| _xifexpression_1 = _builder_2; |
| } |
| _xifexpression = _xifexpression_1; |
| } |
| _builder.append(_xifexpression); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_5); |
| }; |
| JvmOperation _method_4 = this._jvmTypesBuilder.toMethod(signal, "bindDataInterchangeMethod", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_4); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_4, _method_4); |
| EList<JvmMember> _members_5 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_5 = (JvmOperation it) -> { |
| it.setVisibility(JvmVisibility.PUBLIC); |
| it.setSynchronized(true); |
| EList<JvmFormalParameter> _parameters = it.getParameters(); |
| JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "dataInterchange", this._typeReferenceBuilder.typeRef(IDataInterchange.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter); |
| final Procedure1<ITreeAppendable> _function_6 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("this.dataInterchange = null;"); |
| _builder.newLine(); |
| CharSequence _xifexpression = null; |
| if ((signal instanceof SignalWatcher)) { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| _builder_1.append("log.info(\""); |
| String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName()); |
| String _plus = (_firstUpper + "Watcher"); |
| _builder_1.append(_plus); |
| _builder_1.append(" - DataInterchange unbound\");"); |
| _xifexpression = _builder_1; |
| } else { |
| CharSequence _xifexpression_1 = null; |
| if ((signal instanceof SignalScheduler)) { |
| StringConcatenation _builder_2 = new StringConcatenation(); |
| _builder_2.append("log.info(\""); |
| String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName()); |
| String _plus_1 = (_firstUpper_1 + "Scheduler"); |
| _builder_2.append(_plus_1); |
| _builder_2.append(" - DataInterchange unbound\");"); |
| _xifexpression_1 = _builder_2; |
| } |
| _xifexpression = _xifexpression_1; |
| } |
| _builder.append(_xifexpression); |
| _builder.newLineIfNotEmpty(); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_6); |
| }; |
| JvmOperation _method_5 = this._jvmTypesBuilder.toMethod(signal, "unbindDataInterchangeMethod", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_5); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_5, _method_5); |
| EList<JvmMember> _members_6 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_6 = (JvmOperation it) -> { |
| JvmAnnotationReference annotationRef = this._annotationTypesBuilder.annotationRef(Reference.class); |
| this._annotationExtension.addAnnAttr(annotationRef, signal, "cardinality", ReferenceCardinality.MANDATORY); |
| this._annotationExtension.addAnnAttr(annotationRef, signal, "policy", ReferencePolicy.STATIC); |
| EList<JvmAnnotationReference> _annotations = it.getAnnotations(); |
| this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, annotationRef); |
| it.setVisibility(JvmVisibility.PUBLIC); |
| it.setSynchronized(true); |
| EList<JvmFormalParameter> _parameters = it.getParameters(); |
| JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "blobService", this._typeReferenceBuilder.typeRef(IBlobService.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter); |
| final Procedure1<ITreeAppendable> _function_7 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("this.blobService = blobService;"); |
| _builder.newLine(); |
| CharSequence _xifexpression = null; |
| if ((signal instanceof SignalWatcher)) { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| _builder_1.append("log.info(\""); |
| String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName()); |
| String _plus = (_firstUpper + "Watcher"); |
| _builder_1.append(_plus); |
| _builder_1.append(" - BlobService bound\");"); |
| _xifexpression = _builder_1; |
| } else { |
| CharSequence _xifexpression_1 = null; |
| if ((signal instanceof SignalScheduler)) { |
| StringConcatenation _builder_2 = new StringConcatenation(); |
| _builder_2.append("log.info(\""); |
| String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName()); |
| String _plus_1 = (_firstUpper_1 + "Scheduler"); |
| _builder_2.append(_plus_1); |
| _builder_2.append(" - BlobService bound\");"); |
| _xifexpression_1 = _builder_2; |
| } |
| _xifexpression = _xifexpression_1; |
| } |
| _builder.append(_xifexpression); |
| _builder.newLineIfNotEmpty(); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_7); |
| }; |
| JvmOperation _method_6 = this._jvmTypesBuilder.toMethod(signal, "bindBlobMethod", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_6); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_6, _method_6); |
| EList<JvmMember> _members_7 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_7 = (JvmOperation it) -> { |
| it.setVisibility(JvmVisibility.PUBLIC); |
| it.setSynchronized(true); |
| EList<JvmFormalParameter> _parameters = it.getParameters(); |
| JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "blobService", this._typeReferenceBuilder.typeRef(IBlobService.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter); |
| final Procedure1<ITreeAppendable> _function_8 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("this.blobService = null;"); |
| _builder.newLine(); |
| CharSequence _xifexpression = null; |
| if ((signal instanceof SignalWatcher)) { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| _builder_1.append("log.info(\""); |
| String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName()); |
| String _plus = (_firstUpper + "Watcher"); |
| _builder_1.append(_plus); |
| _builder_1.append(" - BlobService unbound\");"); |
| _xifexpression = _builder_1; |
| } else { |
| CharSequence _xifexpression_1 = null; |
| if ((signal instanceof SignalScheduler)) { |
| StringConcatenation _builder_2 = new StringConcatenation(); |
| _builder_2.append("log.info(\""); |
| String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName()); |
| String _plus_1 = (_firstUpper_1 + "Scheduler"); |
| _builder_2.append(_plus_1); |
| _builder_2.append(" - BlobService unbound\");"); |
| _xifexpression_1 = _builder_2; |
| } |
| _xifexpression = _xifexpression_1; |
| } |
| _builder.append(_xifexpression); |
| _builder.newLineIfNotEmpty(); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_8); |
| }; |
| JvmOperation _method_7 = this._jvmTypesBuilder.toMethod(signal, "unbindBlobMethod", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_7); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_7, _method_7); |
| EList<JvmMember> _members_8 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_8 = (JvmOperation it) -> { |
| JvmAnnotationReference annotationRef = this._annotationTypesBuilder.annotationRef(Reference.class); |
| this._annotationExtension.addAnnAttr(annotationRef, signal, "cardinality", ReferenceCardinality.MANDATORY); |
| this._annotationExtension.addAnnAttr(annotationRef, signal, "policy", ReferencePolicy.STATIC); |
| EList<JvmAnnotationReference> _annotations = it.getAnnotations(); |
| this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, annotationRef); |
| it.setVisibility(JvmVisibility.PUBLIC); |
| it.setSynchronized(true); |
| EList<JvmFormalParameter> _parameters = it.getParameters(); |
| JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "eventDispatcher", this._typeReferenceBuilder.typeRef(IEventDispatcher.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter); |
| final Procedure1<ITreeAppendable> _function_9 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("this.eventDispatcher = eventDispatcher;"); |
| _builder.newLine(); |
| CharSequence _xifexpression = null; |
| if ((signal instanceof SignalWatcher)) { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| _builder_1.append("log.info(\""); |
| String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName()); |
| String _plus = (_firstUpper + "Watcher"); |
| _builder_1.append(_plus); |
| _builder_1.append(" - EventDispatcher bound\");"); |
| _xifexpression = _builder_1; |
| } else { |
| CharSequence _xifexpression_1 = null; |
| if ((signal instanceof SignalScheduler)) { |
| StringConcatenation _builder_2 = new StringConcatenation(); |
| _builder_2.append("log.info(\""); |
| String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName()); |
| String _plus_1 = (_firstUpper_1 + "Scheduler"); |
| _builder_2.append(_plus_1); |
| _builder_2.append(" - EventDispatcher bound\");"); |
| _xifexpression_1 = _builder_2; |
| } |
| _xifexpression = _xifexpression_1; |
| } |
| _builder.append(_xifexpression); |
| _builder.newLineIfNotEmpty(); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_9); |
| }; |
| JvmOperation _method_8 = this._jvmTypesBuilder.toMethod(signal, "bindEventDispatcher", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_8); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_8, _method_8); |
| EList<JvmMember> _members_9 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_9 = (JvmOperation it) -> { |
| it.setVisibility(JvmVisibility.PUBLIC); |
| it.setSynchronized(true); |
| EList<JvmFormalParameter> _parameters = it.getParameters(); |
| JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "eventDispatcher", this._typeReferenceBuilder.typeRef(IEventDispatcher.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter); |
| final Procedure1<ITreeAppendable> _function_10 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("this.eventDispatcher = null;"); |
| _builder.newLine(); |
| CharSequence _xifexpression = null; |
| if ((signal instanceof SignalWatcher)) { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| _builder_1.append("log.info(\""); |
| String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName()); |
| String _plus = (_firstUpper + "Watcher"); |
| _builder_1.append(_plus); |
| _builder_1.append(" - EventDispatcher unbound\");"); |
| _xifexpression = _builder_1; |
| } else { |
| CharSequence _xifexpression_1 = null; |
| if ((signal instanceof SignalScheduler)) { |
| StringConcatenation _builder_2 = new StringConcatenation(); |
| _builder_2.append("log.info(\""); |
| String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName()); |
| String _plus_1 = (_firstUpper_1 + "Scheduler"); |
| _builder_2.append(_plus_1); |
| _builder_2.append(" - EventDispatcher unbound\");"); |
| _xifexpression_1 = _builder_2; |
| } |
| _xifexpression = _xifexpression_1; |
| } |
| _builder.append(_xifexpression); |
| _builder.newLineIfNotEmpty(); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_10); |
| }; |
| JvmOperation _method_9 = this._jvmTypesBuilder.toMethod(signal, "unbindEventDispatcher", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_9); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_9, _method_9); |
| EList<JvmMember> _members_10 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_10 = (JvmOperation it) -> { |
| JvmAnnotationReference annotationRef = this._annotationTypesBuilder.annotationRef(Reference.class); |
| this._annotationExtension.addAnnAttr(annotationRef, signal, "cardinality", ReferenceCardinality.MANDATORY); |
| this._annotationExtension.addAnnAttr(annotationRef, signal, "policy", ReferencePolicy.STATIC); |
| EList<JvmAnnotationReference> _annotations = it.getAnnotations(); |
| this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, annotationRef); |
| it.setVisibility(JvmVisibility.PUBLIC); |
| it.setSynchronized(true); |
| EList<JvmFormalParameter> _parameters = it.getParameters(); |
| JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "persistenceService", this._typeReferenceBuilder.typeRef(IPersistenceService.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter); |
| final Procedure1<ITreeAppendable> _function_11 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("this.persistenceService = persistenceService;"); |
| _builder.newLine(); |
| CharSequence _xifexpression = null; |
| if ((signal instanceof SignalWatcher)) { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| _builder_1.append("log.info(\""); |
| String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName()); |
| String _plus = (_firstUpper + "Watcher"); |
| _builder_1.append(_plus); |
| _builder_1.append(" - PersistenceService bound\");"); |
| _xifexpression = _builder_1; |
| } else { |
| CharSequence _xifexpression_1 = null; |
| if ((signal instanceof SignalScheduler)) { |
| StringConcatenation _builder_2 = new StringConcatenation(); |
| _builder_2.append("log.info(\""); |
| String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName()); |
| String _plus_1 = (_firstUpper_1 + "Scheduler"); |
| _builder_2.append(_plus_1); |
| _builder_2.append(" - PersistenceService bound\");"); |
| _xifexpression_1 = _builder_2; |
| } |
| _xifexpression = _xifexpression_1; |
| } |
| _builder.append(_xifexpression); |
| _builder.newLineIfNotEmpty(); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_11); |
| }; |
| JvmOperation _method_10 = this._jvmTypesBuilder.toMethod(signal, "bindPersistenceMethod", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_10); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_10, _method_10); |
| EList<JvmMember> _members_11 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_11 = (JvmOperation it) -> { |
| it.setVisibility(JvmVisibility.PUBLIC); |
| it.setSynchronized(true); |
| EList<JvmFormalParameter> _parameters = it.getParameters(); |
| JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "persistenceService", this._typeReferenceBuilder.typeRef(IPersistenceService.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter); |
| final Procedure1<ITreeAppendable> _function_12 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("this.persistenceService = null;"); |
| _builder.newLine(); |
| CharSequence _xifexpression = null; |
| if ((signal instanceof SignalWatcher)) { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| _builder_1.append("log.info(\""); |
| String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName()); |
| String _plus = (_firstUpper + "Watcher"); |
| _builder_1.append(_plus); |
| _builder_1.append(" - PersistenceService unbound\");"); |
| _xifexpression = _builder_1; |
| } else { |
| CharSequence _xifexpression_1 = null; |
| if ((signal instanceof SignalScheduler)) { |
| StringConcatenation _builder_2 = new StringConcatenation(); |
| _builder_2.append("log.info(\""); |
| String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName()); |
| String _plus_1 = (_firstUpper_1 + "Scheduler"); |
| _builder_2.append(_plus_1); |
| _builder_2.append(" - PersistenceService unbound\");"); |
| _xifexpression_1 = _builder_2; |
| } |
| _xifexpression = _xifexpression_1; |
| } |
| _builder.append(_xifexpression); |
| _builder.newLineIfNotEmpty(); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_12); |
| }; |
| JvmOperation _method_11 = this._jvmTypesBuilder.toMethod(signal, "unbindPersistenceMethod", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_11); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_11, _method_11); |
| } |
| |
| public void toOperations(final JvmGenericType type, final SignalDefinition signal) { |
| if ((signal instanceof SignalWatcher)) { |
| EList<JvmMember> _members = type.getMembers(); |
| final Procedure1<JvmOperation> _function = (JvmOperation it) -> { |
| EList<JvmAnnotationReference> _annotations = it.getAnnotations(); |
| JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Override.class); |
| this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef); |
| EList<JvmFormalParameter> _parameters = it.getParameters(); |
| JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "file", this._typeReferenceBuilder.typeRef(Path.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter); |
| final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| String _handleEvent = this.handleEvent(((SignalWatcher)signal)); |
| _builder.append(_handleEvent); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_1); |
| }; |
| JvmOperation _method = this._jvmTypesBuilder.toMethod(signal, "handleEvent", this._typeReferenceBuilder.typeRef(Void.TYPE), _function); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method); |
| EList<JvmMember> _members_1 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_1 = (JvmOperation it) -> { |
| final Procedure1<ITreeAppendable> _function_2 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| String _executeService = this.getExecuteService(signal); |
| _builder.append(_executeService); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_2); |
| }; |
| JvmOperation _method_1 = this._jvmTypesBuilder.toMethod(signal, "executeWatcherService", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_1); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method_1); |
| } |
| if ((signal instanceof SignalScheduler)) { |
| EList<JvmMember> _members_2 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_2 = (JvmOperation it) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("Starts the {@link #scheduler}."); |
| this._jvmTypesBuilder.setDocumentation(it, _builder.toString()); |
| EList<JvmTypeReference> _exceptions = it.getExceptions(); |
| JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(SchedulerException.class); |
| this._jvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef); |
| final Procedure1<ITreeAppendable> _function_3 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| String _startScheduler = this.startScheduler(((SignalScheduler)signal)); |
| _builder_1.append(_startScheduler); |
| it_1.append(_builder_1); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_3); |
| }; |
| JvmOperation _method_2 = this._jvmTypesBuilder.toMethod(signal, "startScheduler", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_2); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_2, _method_2); |
| EList<JvmMember> _members_3 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_3 = (JvmOperation it) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("Halts the Scheduler\'s firing of Triggers, and cleans up all resources associated with the Scheduler."); |
| _builder.newLine(); |
| _builder.append("@param waitForJobsToComplete whether or not the scheduler shuts down immediately or wait for jobs to finish."); |
| _builder.newLine(); |
| _builder.append("@throws SchedulerException"); |
| this._jvmTypesBuilder.setDocumentation(it, _builder.toString()); |
| EList<JvmTypeReference> _exceptions = it.getExceptions(); |
| JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(SchedulerException.class); |
| this._jvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef); |
| EList<JvmFormalParameter> _parameters = it.getParameters(); |
| JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "waitForJobsToComplete", this._typeReferenceBuilder.typeRef(boolean.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter); |
| final Procedure1<ITreeAppendable> _function_4 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| String _shutdownScheduler = this.shutdownScheduler(((SignalScheduler)signal)); |
| _builder_1.append(_shutdownScheduler); |
| it_1.append(_builder_1); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_4); |
| }; |
| JvmOperation _method_3 = this._jvmTypesBuilder.toMethod(signal, "shutdownScheduler", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_3); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_3, _method_3); |
| EList<JvmMember> _members_4 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_4 = (JvmOperation it) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("Schedules a given job based on a given trigger."); |
| _builder.newLine(); |
| _builder.append("@param job the {@link JobDetail} to be scheduled"); |
| _builder.newLine(); |
| _builder.append("@param trigger the corresponding trigger"); |
| _builder.newLine(); |
| _builder.append("@return"); |
| this._jvmTypesBuilder.setDocumentation(it, _builder.toString()); |
| EList<JvmTypeReference> _exceptions = it.getExceptions(); |
| JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(SchedulerException.class); |
| this._jvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef); |
| EList<JvmFormalParameter> _parameters = it.getParameters(); |
| JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "job", this._typeReferenceBuilder.typeRef(JobDetail.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter); |
| EList<JvmFormalParameter> _parameters_1 = it.getParameters(); |
| JvmFormalParameter _parameter_1 = this._jvmTypesBuilder.toParameter(signal, "trigger", this._typeReferenceBuilder.typeRef(Trigger.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1); |
| final Procedure1<ITreeAppendable> _function_5 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| String _scheduleJob = this.scheduleJob(((SignalScheduler)signal)); |
| _builder_1.append(_scheduleJob); |
| it_1.append(_builder_1); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_5); |
| }; |
| JvmOperation _method_4 = this._jvmTypesBuilder.toMethod(signal, "scheduleJob", this._typeReferenceBuilder.typeRef(Date.class), _function_4); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_4, _method_4); |
| EList<JvmMember> _members_5 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_5 = (JvmOperation it) -> { |
| EList<JvmTypeReference> _exceptions = it.getExceptions(); |
| JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(SchedulerException.class); |
| this._jvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef); |
| final Procedure1<ITreeAppendable> _function_6 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| String _scheduleAllJobs = this.scheduleAllJobs(((SignalScheduler)signal)); |
| _builder.append(_scheduleAllJobs); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_6); |
| }; |
| JvmOperation _method_5 = this._jvmTypesBuilder.toMethod(signal, "scheduleAllJobs", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_5); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_5, _method_5); |
| EList<JvmMember> _members_6 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_6 = (JvmOperation it) -> { |
| final Procedure1<ITreeAppendable> _function_7 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| String _executeService = this.getExecuteService(signal); |
| _builder.append(_executeService); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_7); |
| }; |
| JvmOperation _method_6 = this._jvmTypesBuilder.toMethod(signal, "executeSchedulerService", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_6); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_6, _method_6); |
| EList<JvmMember> _members_7 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_7 = (JvmOperation it) -> { |
| EList<JvmTypeReference> _exceptions = it.getExceptions(); |
| JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(JobExecutionException.class); |
| this._jvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef); |
| EList<JvmAnnotationReference> _annotations = it.getAnnotations(); |
| JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Override.class); |
| this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef); |
| EList<JvmFormalParameter> _parameters = it.getParameters(); |
| JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "context", this._typeReferenceBuilder.typeRef(JobExecutionContext.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter); |
| this._jvmTypesBuilder.setDocumentation(it, "Executes the list of tasks as job\'s logic."); |
| final Procedure1<ITreeAppendable> _function_8 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("new "); |
| String _firstUpper = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName()); |
| _builder.append(_firstUpper); |
| _builder.append("SchedulerJob(persistenceService, dataInterchange, blobService, eventDispatcher, "); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("\""); |
| QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(signal); |
| _builder.append(_fullyQualifiedName); |
| _builder.append("Scheduler\").executeListOfTasks();"); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_8); |
| }; |
| JvmOperation _method_7 = this._jvmTypesBuilder.toMethod(signal, "execute", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_7); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_7, _method_7); |
| } |
| EList<JvmMember> _members_8 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_8 = (JvmOperation it) -> { |
| this._jvmTypesBuilder.setDocumentation(it, "Gives the property value of the given property name if existing."); |
| EList<JvmFormalParameter> _parameters = it.getParameters(); |
| JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(signal, "propertyname", this._typeReferenceBuilder.typeRef(String.class)); |
| this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter); |
| final Procedure1<ITreeAppendable> _function_9 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| String _handlerPropertyFromConfigurationFile = this.handlerPropertyFromConfigurationFile(signal); |
| _builder.append(_handlerPropertyFromConfigurationFile); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_9); |
| }; |
| JvmOperation _method_8 = this._jvmTypesBuilder.toMethod(signal, "getHandlerPropertyFromConfigurationFile", this._typeReferenceBuilder.typeRef(String.class), _function_8); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_8, _method_8); |
| EList<JvmMember> _members_9 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_9 = (JvmOperation it) -> { |
| EList<JvmAnnotationReference> _annotations = it.getAnnotations(); |
| JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Activate.class); |
| this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef); |
| final Procedure1<ITreeAppendable> _function_10 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| String _activate = this.getActivate(signal); |
| _builder.append(_activate); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_10); |
| }; |
| JvmOperation _method_9 = this._jvmTypesBuilder.toMethod(signal, "activate", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_9); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_9, _method_9); |
| EList<JvmMember> _members_10 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_10 = (JvmOperation it) -> { |
| EList<JvmAnnotationReference> _annotations = it.getAnnotations(); |
| JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Deactivate.class); |
| this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef); |
| final Procedure1<ITreeAppendable> _function_11 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| String _deactivate = this.getDeactivate(signal); |
| _builder.append(_deactivate); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_11); |
| }; |
| JvmOperation _method_10 = this._jvmTypesBuilder.toMethod(signal, "deactivate", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_10); |
| this._jvmTypesBuilder.<JvmOperation>operator_add(_members_10, _method_10); |
| } |
| |
| public String scheduleJob(final SignalScheduler scheduler) { |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("try {"); |
| _builder.newLine(); |
| _builder.append("\t"); |
| _builder.append("return scheduler.scheduleJob(job, trigger);"); |
| _builder.newLine(); |
| _builder.append("} catch (SchedulerException e) {"); |
| _builder.newLine(); |
| _builder.append("\t"); |
| _builder.append("e.printStackTrace();"); |
| _builder.newLine(); |
| _builder.append("}"); |
| _builder.newLine(); |
| _builder.append("return null;"); |
| return _builder.toString(); |
| } |
| |
| public String shutdownScheduler(final SignalScheduler scheduler) { |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("log.info(\"Shutdowns \"+scheduler.getSchedulerName()+\" ...\");"); |
| _builder.newLine(); |
| _builder.append("scheduler.shutdown(waitForJobsToComplete);"); |
| return _builder.toString(); |
| } |
| |
| public String startScheduler(final SignalScheduler scheduler) { |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("scheduler.start();"); |
| _builder.newLine(); |
| _builder.append("log.info(scheduler.getSchedulerName() + \" service successfully started!\");"); |
| return _builder.toString(); |
| } |
| |
| public String handleEvent(final SignalWatcher watcher) { |
| if ((watcher != null)) { |
| StringConcatenation _builder = new StringConcatenation(); |
| CharSequence _xifexpression = null; |
| boolean _isHasFileMask = watcher.isHasFileMask(); |
| if (_isHasFileMask) { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| _builder_1.append("String maskcfg = getFilemaskValue(getHandlerPropertyFromConfigurationFile(\""); |
| QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(watcher); |
| _builder_1.append(_fullyQualifiedName); |
| _builder_1.append("Watcher\" + SignalConstants.FILEMASK));"); |
| _builder_1.newLineIfNotEmpty(); |
| _builder_1.append("String modelfilemask = \""); |
| String _identifier = watcher.getIdentifier(); |
| _builder_1.append(_identifier); |
| _builder_1.append("\";"); |
| _builder_1.newLineIfNotEmpty(); |
| _builder_1.append("if(isFileMaskValid(maskcfg) && isFileMaskValidWithExpectedFileExtension(maskcfg, \""); |
| String _validExtensionToInterchange = this.dv.getValidExtensionToInterchange(this.baseInterchange(watcher).getFileEndpoint()); |
| _builder_1.append(_validExtensionToInterchange); |
| _builder_1.append("\")){"); |
| _builder_1.newLineIfNotEmpty(); |
| _builder_1.append("\t"); |
| _builder_1.append("modelfilemask = maskcfg;"); |
| _builder_1.newLine(); |
| _builder_1.append(" \t"); |
| _builder_1.append("log.info(\""); |
| String _name = watcher.getName(); |
| _builder_1.append(_name, " \t"); |
| _builder_1.append("Watcher - The file mask used for file identification is [\"+maskcfg+\"].\");"); |
| _builder_1.newLineIfNotEmpty(); |
| _builder_1.append("}else{"); |
| _builder_1.newLine(); |
| _builder_1.append(" \t"); |
| _builder_1.append("log.info(\""); |
| String _name_1 = watcher.getName(); |
| _builder_1.append(_name_1, " \t"); |
| _builder_1.append("Watcher - The default file mask ["); |
| String _identifier_1 = watcher.getIdentifier(); |
| _builder_1.append(_identifier_1, " \t"); |
| _builder_1.append("] is used for file identification.\");"); |
| _builder_1.newLineIfNotEmpty(); |
| _builder_1.append("}"); |
| _builder_1.newLine(); |
| _builder_1.append("if(isFileNameValidToFileMask(file.getFileName().toString(), modelfilemask)){"); |
| _builder_1.newLine(); |
| _builder_1.append("\t"); |
| _builder_1.append("addWatcherJob(new "); |
| String _firstUpper = StringExtensions.toFirstUpper(watcher.getName()); |
| _builder_1.append(_firstUpper, "\t"); |
| _builder_1.append("WatcherJob(persistenceService, dataInterchange, blobService, eventDispatcher, file, \""); |
| QualifiedName _fullyQualifiedName_1 = this._iQualifiedNameProvider.getFullyQualifiedName(watcher); |
| _builder_1.append(_fullyQualifiedName_1, "\t"); |
| _builder_1.append("Watcher\"));"); |
| _builder_1.newLineIfNotEmpty(); |
| _builder_1.append("}"); |
| _xifexpression = _builder_1; |
| } else { |
| StringConcatenation _builder_2 = new StringConcatenation(); |
| _builder_2.append("String namecfg = getFilemaskValue(getHandlerPropertyFromConfigurationFile(\""); |
| QualifiedName _fullyQualifiedName_2 = this._iQualifiedNameProvider.getFullyQualifiedName(watcher); |
| _builder_2.append(_fullyQualifiedName_2); |
| _builder_2.append("Watcher\" + SignalConstants.FILENAME));"); |
| _builder_2.newLineIfNotEmpty(); |
| _builder_2.append("String filemask = namecfg != null ? namecfg : \""); |
| String _identifier_2 = watcher.getIdentifier(); |
| _builder_2.append(_identifier_2); |
| _builder_2.append("\";"); |
| _builder_2.newLineIfNotEmpty(); |
| _builder_2.append("if(isFileNameValidToBaseFileName(file.getFileName().toString(), filemask)){"); |
| _builder_2.newLine(); |
| _builder_2.append("\t"); |
| _builder_2.append("addWatcherJob(new "); |
| String _firstUpper_1 = StringExtensions.toFirstUpper(watcher.getName()); |
| _builder_2.append(_firstUpper_1, "\t"); |
| _builder_2.append("WatcherJob(persistenceService, dataInterchange, blobService, eventDispatcher, file, \""); |
| QualifiedName _fullyQualifiedName_3 = this._iQualifiedNameProvider.getFullyQualifiedName(watcher); |
| _builder_2.append(_fullyQualifiedName_3, "\t"); |
| _builder_2.append("Watcher\"));"); |
| _builder_2.newLineIfNotEmpty(); |
| _builder_2.append("}"); |
| _xifexpression = _builder_2; |
| } |
| _builder.append(_xifexpression); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("else{"); |
| _builder.newLine(); |
| _builder.append("\t"); |
| _builder.append("log.info(\""); |
| String _firstUpper_2 = StringExtensions.toFirstUpper(watcher.getName()); |
| _builder.append(_firstUpper_2, "\t"); |
| _builder.append("Watcher - No action planed for file [\"+file+\"].\");"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("}"); |
| return _builder.toString(); |
| } |
| StringConcatenation _builder_3 = new StringConcatenation(); |
| return _builder_3.toString(); |
| } |
| |
| public void toConstructor(final JvmGenericType type, final SignalDefinition signal) { |
| EList<JvmMember> _members = type.getMembers(); |
| final Procedure1<JvmConstructor> _function = (JvmConstructor it) -> { |
| if ((signal instanceof SignalWatcher)) { |
| EList<JvmTypeReference> _exceptions = it.getExceptions(); |
| JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(Exception.class); |
| this._jvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef); |
| final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("super(\""); |
| String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName()); |
| String _plus = (_firstUpper + "Watcher"); |
| _builder.append(_plus); |
| _builder.append("\");"); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_1); |
| } |
| }; |
| JvmConstructor _constructor = this._jvmTypesBuilder.toConstructor(signal, _function); |
| this._jvmTypesBuilder.<JvmConstructor>operator_add(_members, _constructor); |
| } |
| |
| public String executeWatcherTasksList(final SignalWatcher watcher) { |
| StringConcatenation _builder = new StringConcatenation(); |
| CharSequence _xifexpression = null; |
| if ((watcher != null)) { |
| CharSequence _xblockexpression = null; |
| { |
| String operationList = ""; |
| boolean functionWithFile = this.hasFunctionWithFile(watcher); |
| EList<SignalTask> _tasks = watcher.getTasks(); |
| for (final SignalTask task : _tasks) { |
| String _taskListOperationName = this.getTaskListOperationName(task, functionWithFile); |
| String _plus = (operationList + _taskListOperationName); |
| operationList = _plus; |
| } |
| CharSequence _xifexpression_1 = null; |
| boolean _equals = watcher.getExecutiontype().equals(SignalExecutionTypeEnum.SEQ); |
| if (_equals) { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| _builder_1.append("log.info(\"WatcherJobsHandler - START - Sequential execution of "); |
| String _firstUpper = StringExtensions.toFirstUpper(watcher.getName()); |
| _builder_1.append(_firstUpper); |
| _builder_1.append("WatcherJob ...\");"); |
| _builder_1.newLineIfNotEmpty(); |
| _builder_1.append("try {"); |
| _builder_1.newLine(); |
| _builder_1.append("\t"); |
| _builder_1.append(operationList, "\t"); |
| _builder_1.newLineIfNotEmpty(); |
| _builder_1.append("\t"); |
| _builder_1.append("deleteFile(getTriggerfile(), \""); |
| String _firstUpper_1 = StringExtensions.toFirstUpper(watcher.getName()); |
| _builder_1.append(_firstUpper_1, "\t"); |
| _builder_1.append("WatcherJob - Triggerfile\");"); |
| _builder_1.newLineIfNotEmpty(); |
| _builder_1.append("} catch(Exception e){"); |
| _builder_1.newLine(); |
| _builder_1.append("\t"); |
| _builder_1.append("log.error(\"WatcherJobsHandler - ERROR during sequential execution of "); |
| String _firstUpper_2 = StringExtensions.toFirstUpper(watcher.getName()); |
| _builder_1.append(_firstUpper_2, "\t"); |
| _builder_1.append("WatcherJob!\", e);"); |
| _builder_1.newLineIfNotEmpty(); |
| _builder_1.append("}"); |
| _builder_1.newLine(); |
| _builder_1.append("setDone(true); // for the WatcherhandlerJob to continue "); |
| _builder_1.newLine(); |
| _builder_1.append("log.info(\"WatcherJobsHandler - END - Sequential execution of "); |
| String _firstUpper_3 = StringExtensions.toFirstUpper(watcher.getName()); |
| _builder_1.append(_firstUpper_3); |
| _builder_1.append("WatcherJob ...\");"); |
| _xifexpression_1 = _builder_1; |
| } else { |
| StringConcatenation _builder_2 = new StringConcatenation(); |
| _builder_2.append("log.info(\"WatcherJobsHandler - START - Parallel execution of "); |
| String _firstUpper_4 = StringExtensions.toFirstUpper(watcher.getName()); |
| _builder_2.append(_firstUpper_4); |
| _builder_2.append("WatcherJob ...\");"); |
| _builder_2.newLineIfNotEmpty(); |
| _builder_2.append("try {"); |
| _builder_2.newLine(); |
| _builder_2.append("\t"); |
| _builder_2.append(operationList, "\t"); |
| _builder_2.newLineIfNotEmpty(); |
| _builder_2.append("\t"); |
| _builder_2.append("finalizeTaskExecution(\""); |
| String _firstUpper_5 = StringExtensions.toFirstUpper(watcher.getName()); |
| _builder_2.append(_firstUpper_5, "\t"); |
| _builder_2.append("WatcherJob\");"); |
| _builder_2.newLineIfNotEmpty(); |
| _builder_2.append("} catch(Exception e){"); |
| _builder_2.newLine(); |
| _builder_2.append("\t"); |
| _builder_2.append("log.error(\"WatcherJobsHandler - ERROR during parallel execution of "); |
| String _firstUpper_6 = StringExtensions.toFirstUpper(watcher.getName()); |
| _builder_2.append(_firstUpper_6, "\t"); |
| _builder_2.append("WatcherJob!\", e);"); |
| _builder_2.newLineIfNotEmpty(); |
| _builder_2.append("\t"); |
| _builder_2.append("setDone(true); // for the WatcherhandlerJob to continue"); |
| _builder_2.newLine(); |
| _builder_2.append("\t"); |
| _builder_2.append("log.info(\"WatcherJobsHandler - END - Parallel execution of "); |
| String _firstUpper_7 = StringExtensions.toFirstUpper(watcher.getName()); |
| _builder_2.append(_firstUpper_7, "\t"); |
| _builder_2.append("WatcherJob ...\");"); |
| _builder_2.newLineIfNotEmpty(); |
| _builder_2.append("}"); |
| _xifexpression_1 = _builder_2; |
| } |
| _xblockexpression = _xifexpression_1; |
| } |
| _xifexpression = _xblockexpression; |
| } |
| _builder.append(_xifexpression); |
| _builder.newLineIfNotEmpty(); |
| return _builder.toString(); |
| } |
| |
| public String executeSchedulerTasksList(final SignalScheduler scheduler) { |
| StringConcatenation _builder = new StringConcatenation(); |
| CharSequence _xifexpression = null; |
| if ((scheduler != null)) { |
| CharSequence _xblockexpression = null; |
| { |
| String operationList = ""; |
| boolean functionWithFile = this.hasFunctionWithFile(scheduler); |
| EList<SignalTask> _tasks = scheduler.getTasks(); |
| for (final SignalTask task : _tasks) { |
| String _taskListOperationName = this.getTaskListOperationName(task, functionWithFile); |
| String _plus = (operationList + _taskListOperationName); |
| operationList = _plus; |
| } |
| CharSequence _xifexpression_1 = null; |
| boolean _equals = scheduler.getExecutiontype().equals(SignalExecutionTypeEnum.SEQ); |
| if (_equals) { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| _builder_1.append("log.info(\"START - Sequential execution of "); |
| String _firstUpper = StringExtensions.toFirstUpper(scheduler.getName()); |
| _builder_1.append(_firstUpper); |
| _builder_1.append("SchedulerJob ...\");"); |
| _builder_1.newLineIfNotEmpty(); |
| _builder_1.append("try {"); |
| _builder_1.newLine(); |
| _builder_1.append("\t"); |
| _builder_1.append(operationList, "\t"); |
| _builder_1.newLineIfNotEmpty(); |
| _builder_1.append("} catch(Exception e){"); |
| _builder_1.newLine(); |
| _builder_1.append("\t"); |
| _builder_1.append("log.error(\"ERROR during sequential execution of "); |
| String _firstUpper_1 = StringExtensions.toFirstUpper(scheduler.getName()); |
| _builder_1.append(_firstUpper_1, "\t"); |
| _builder_1.append("SchedulerJob!\", e);"); |
| _builder_1.newLineIfNotEmpty(); |
| _builder_1.append("}"); |
| _builder_1.newLine(); |
| _builder_1.append("log.info(\"END - Sequential execution of "); |
| String _firstUpper_2 = StringExtensions.toFirstUpper(scheduler.getName()); |
| _builder_1.append(_firstUpper_2); |
| _builder_1.append("SchedulerJob.\");"); |
| _xifexpression_1 = _builder_1; |
| } else { |
| StringConcatenation _builder_2 = new StringConcatenation(); |
| _builder_2.append("log.info(\"START - Parallel execution of "); |
| String _firstUpper_3 = StringExtensions.toFirstUpper(scheduler.getName()); |
| _builder_2.append(_firstUpper_3); |
| _builder_2.append("SchedulerJob ...\");"); |
| _builder_2.newLineIfNotEmpty(); |
| _builder_2.append("try {"); |
| _builder_2.newLine(); |
| _builder_2.append("\t"); |
| _builder_2.append(operationList, "\t"); |
| _builder_2.newLineIfNotEmpty(); |
| _builder_2.append("\t"); |
| _builder_2.append("finalizeTaskExecution(\""); |
| String _firstUpper_4 = StringExtensions.toFirstUpper(scheduler.getName()); |
| _builder_2.append(_firstUpper_4, "\t"); |
| _builder_2.append("SchedulerJob\");"); |
| _builder_2.newLineIfNotEmpty(); |
| _builder_2.append("} catch(Exception e){"); |
| _builder_2.newLine(); |
| _builder_2.append("\t"); |
| _builder_2.append("log.error(\"ERROR during parallel execution of "); |
| String _firstUpper_5 = StringExtensions.toFirstUpper(scheduler.getName()); |
| _builder_2.append(_firstUpper_5, "\t"); |
| _builder_2.append("SchedulerJob!\", e);"); |
| _builder_2.newLineIfNotEmpty(); |
| _builder_2.append("log.info(\"END - Parallel execution of "); |
| String _firstUpper_6 = StringExtensions.toFirstUpper(scheduler.getName()); |
| _builder_2.append(_firstUpper_6); |
| _builder_2.append("SchedulerJob.\");"); |
| _builder_2.newLineIfNotEmpty(); |
| _builder_2.append("}"); |
| _xifexpression_1 = _builder_2; |
| } |
| _xblockexpression = _xifexpression_1; |
| } |
| _xifexpression = _xblockexpression; |
| } |
| _builder.append(_xifexpression); |
| _builder.newLineIfNotEmpty(); |
| return _builder.toString(); |
| } |
| |
| public String getTaskListOperationName(final SignalTask task, final boolean existFunctionWithFile) { |
| if ((task instanceof SignalFunction)) { |
| if (((task != null) && (((SignalFunction)task).getDoExecuteFunction() != null))) { |
| if (((((SignalFunction)task).isOnExportFile() || ((SignalFunction)task).isOnImportFile()) && (!((SignalFunction)task).getDoExecuteFunction().getParams().isEmpty()))) { |
| String operationName = ""; |
| boolean _isOnExportFile = ((SignalFunction)task).isOnExportFile(); |
| if (_isOnExportFile) { |
| String _firstUpper = StringExtensions.toFirstUpper(((SignalFunction)task).getSupportInterchange().getName()); |
| String _plus = ("export" + _firstUpper); |
| operationName = _plus; |
| } else { |
| boolean _isOnImportFile = ((SignalFunction)task).isOnImportFile(); |
| if (_isOnImportFile) { |
| String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalFunction)task).getSupportInterchange().getName()); |
| String _plus_1 = ("import" + _firstUpper_1); |
| operationName = _plus_1; |
| } |
| } |
| StringConcatenation _builder = new StringConcatenation(); |
| EObject _eContainer = ((SignalFunction)task).getGroup().eContainer(); |
| QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(((FunctionLibraryPackage) _eContainer)); |
| _builder.append(_fullyQualifiedName); |
| _builder.append("."); |
| String _firstUpper_2 = StringExtensions.toFirstUpper(((SignalFunction)task).getGroup().getName().toString()); |
| _builder.append(_firstUpper_2); |
| _builder.append("."); |
| String _string = ((SignalFunction)task).getDoExecuteFunction().getName().toString(); |
| _builder.append(_string); |
| _builder.append("(paths.get(\""); |
| _builder.append(operationName); |
| _builder.append("\"));"); |
| _builder.newLineIfNotEmpty(); |
| return _builder.toString(); |
| } else { |
| if (((!((SignalFunction)task).isOnExportFile()) && (!((SignalFunction)task).isOnImportFile()))) { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| EObject _eContainer_1 = ((SignalFunction)task).getGroup().eContainer(); |
| QualifiedName _fullyQualifiedName_1 = this._iQualifiedNameProvider.getFullyQualifiedName(((FunctionLibraryPackage) _eContainer_1)); |
| _builder_1.append(_fullyQualifiedName_1); |
| _builder_1.append("."); |
| String _firstUpper_3 = StringExtensions.toFirstUpper(((SignalFunction)task).getGroup().getName().toString()); |
| _builder_1.append(_firstUpper_3); |
| _builder_1.append("."); |
| String _string_1 = ((SignalFunction)task).getDoExecuteFunction().getName().toString(); |
| _builder_1.append(_string_1); |
| _builder_1.append("();"); |
| _builder_1.newLineIfNotEmpty(); |
| return _builder_1.toString(); |
| } |
| } |
| } |
| } else { |
| StringConcatenation _builder_2 = new StringConcatenation(); |
| { |
| if (existFunctionWithFile) { |
| _builder_2.append(" paths.put(\""); |
| String _appropriateTaskOperationName = this.getAppropriateTaskOperationName(task); |
| _builder_2.append(_appropriateTaskOperationName); |
| _builder_2.append("\", "); |
| String _appropriateTaskOperationName_1 = this.getAppropriateTaskOperationName(task); |
| _builder_2.append(_appropriateTaskOperationName_1); |
| _builder_2.append("()); "); |
| } else { |
| String _appropriateTaskOperationName_2 = this.getAppropriateTaskOperationName(task); |
| _builder_2.append(_appropriateTaskOperationName_2); |
| _builder_2.append("(); "); |
| } |
| } |
| _builder_2.newLineIfNotEmpty(); |
| return _builder_2.toString(); |
| } |
| return null; |
| } |
| |
| /** |
| * Returns the operation name of the given task. |
| */ |
| public String getAppropriateTaskOperationName(final SignalTask task) { |
| String operation_name = ""; |
| if ((task instanceof SignalDatainterchange)) { |
| if ((Objects.equal(((SignalDatainterchange)task).getActionType(), SignalActionTypeEnum.DATAIMPORT) && (((SignalDatainterchange)task).getDataRef() != null))) { |
| String _firstUpper = StringExtensions.toFirstUpper(((SignalDatainterchange)task).getDataRef().getName()); |
| String _plus = ("import" + _firstUpper); |
| operation_name = _plus; |
| } else { |
| DataInterchange _dataRef = ((SignalDatainterchange)task).getDataRef(); |
| boolean _tripleNotEquals = (_dataRef != null); |
| if (_tripleNotEquals) { |
| String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalDatainterchange)task).getDataRef().getName()); |
| String _plus_1 = ("export" + _firstUpper_1); |
| operation_name = _plus_1; |
| } |
| } |
| } |
| return operation_name; |
| } |
| |
| /** |
| * Creates the content of each task operation for scheduler and watcher jobs task files. |
| */ |
| public void createTaskOperations(final JvmGenericType type, final SignalDefinition signal) { |
| EList<SignalTask> _tasks = signal.getTasks(); |
| for (final SignalTask task : _tasks) { |
| { |
| String operationname = this.getAppropriateTaskOperationName(task); |
| boolean _contains = this.operationlist.contains(operationname); |
| boolean _not = (!_contains); |
| if (_not) { |
| if ((task instanceof SignalDatainterchange)) { |
| if ((signal instanceof SignalWatcher)) { |
| this.watcherInterchangeOperation(type, ((SignalWatcher)signal), ((SignalDatainterchange)task), operationname); |
| } else { |
| if ((signal instanceof SignalScheduler)) { |
| this.schedulerInterchangeOperation(type, ((SignalScheduler)signal), ((SignalDatainterchange)task), operationname); |
| } |
| } |
| } |
| this.operationlist.add(operationname); |
| } |
| } |
| } |
| } |
| |
| public boolean schedulerInterchangeOperation(final JvmGenericType type, final SignalScheduler signal, final SignalDatainterchange interchange, final String operationname) { |
| boolean _xifexpression = false; |
| SignalActionTypeEnum _actionType = interchange.getActionType(); |
| boolean _equals = Objects.equal(_actionType, SignalActionTypeEnum.DATAIMPORT); |
| if (_equals) { |
| EList<JvmMember> _members = type.getMembers(); |
| final Procedure1<JvmOperation> _function = (JvmOperation it) -> { |
| EList<JvmTypeReference> _exceptions = it.getExceptions(); |
| JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(Exception.class); |
| this._jvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef); |
| final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| String _basicRunConfiguration = this.df.getBasicRunConfiguration(interchange.getDataRef(), true, WorkerThreadRunnable.Direction.IMPORT.name(), null); |
| _builder.append(_basicRunConfiguration); |
| _builder.newLineIfNotEmpty(); |
| String _defaultVariableName = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder.append(_defaultVariableName); |
| _builder.append(".setDirection(WorkerThreadRunnable.Direction.IMPORT);"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("try {"); |
| _builder.newLine(); |
| _builder.append("\t"); |
| CharSequence _xifexpression_1 = null; |
| boolean _equals_1 = ((SignalScheduler) signal).getExecutiontype().equals(SignalExecutionTypeEnum.SEQ); |
| if (_equals_1) { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| String _firstUpper = StringExtensions.toFirstUpper(signal.getName()); |
| String _plus = (_firstUpper + "Scheduler"); |
| _builder_1.append(_plus); |
| _builder_1.append(".getExecutorService().submit("); |
| String _defaultVariableName_1 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder_1.append(_defaultVariableName_1); |
| _builder_1.append(").get();"); |
| _xifexpression_1 = _builder_1; |
| } else { |
| StringConcatenation _builder_2 = new StringConcatenation(); |
| String _firstUpper_1 = StringExtensions.toFirstUpper(signal.getName()); |
| String _plus_1 = (_firstUpper_1 + "Scheduler"); |
| _builder_2.append(_plus_1); |
| _builder_2.append(".getExecutorService().execute("); |
| String _defaultVariableName_2 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder_2.append(_defaultVariableName_2); |
| _builder_2.append(");"); |
| _xifexpression_1 = _builder_2; |
| } |
| _builder.append(_xifexpression_1, "\t"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("}catch (Exception e) {"); |
| _builder.newLine(); |
| _builder.append("\t"); |
| _builder.append("log.error(\"Execution - \" + "); |
| String _defaultVariableName_3 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder.append(_defaultVariableName_3, "\t"); |
| _builder.append(".getDirection() + \" for \" + "); |
| String _defaultVariableName_4 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder.append(_defaultVariableName_4, "\t"); |
| _builder.append(".getName() + \" interupted!\\n\" + e.getMessage());"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("\t"); |
| CharSequence _xifexpression_2 = null; |
| SignalActionTypeEnum _actionType_1 = interchange.getActionType(); |
| boolean _equals_2 = Objects.equal(_actionType_1, SignalActionTypeEnum.DATAIMPORT); |
| if (_equals_2) { |
| StringConcatenation _builder_3 = new StringConcatenation(); |
| { |
| boolean _isDeleteFileAfterImport = interchange.getDataRef().isDeleteFileAfterImport(); |
| if (_isDeleteFileAfterImport) { |
| _builder_3.append("renameFile(Paths.get("); |
| String _defaultVariableName_5 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder_3.append(_defaultVariableName_5); |
| _builder_3.append(".getFileURL().toString()), \""); |
| String _firstUpper_2 = StringExtensions.toFirstUpper(signal.getName()); |
| _builder_3.append(_firstUpper_2); |
| _builder_3.append("SchedulerJob\");"); |
| _builder_3.newLineIfNotEmpty(); |
| } |
| } |
| _xifexpression_2 = _builder_3; |
| } |
| _builder.append(_xifexpression_2, "\t"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("}"); |
| _builder.newLine(); |
| _builder.append("return Paths.get("); |
| String _defaultVariableName_6 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder.append(_defaultVariableName_6); |
| _builder.append(".getFileURL().getPath().substring(1));"); |
| _builder.newLineIfNotEmpty(); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_1); |
| }; |
| JvmOperation _method = this._jvmTypesBuilder.toMethod(signal, operationname, this._typeReferenceBuilder.typeRef(Path.class), _function); |
| _xifexpression = this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method); |
| } else { |
| EList<JvmMember> _members_1 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_1 = (JvmOperation it) -> { |
| final Procedure1<ITreeAppendable> _function_2 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| String _basicRunConfiguration = this.df.getBasicRunConfiguration(interchange.getDataRef(), true, WorkerThreadRunnable.Direction.EXPORT.name(), null); |
| _builder.append(_basicRunConfiguration); |
| _builder.newLineIfNotEmpty(); |
| String _defaultVariableName = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder.append(_defaultVariableName); |
| _builder.append(".setDirection(WorkerThreadRunnable.Direction.EXPORT);"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("try {"); |
| _builder.newLine(); |
| _builder.append("\t"); |
| CharSequence _xifexpression_1 = null; |
| boolean _equals_1 = ((SignalScheduler) signal).getExecutiontype().equals(SignalExecutionTypeEnum.SEQ); |
| if (_equals_1) { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| String _firstUpper = StringExtensions.toFirstUpper(signal.getName()); |
| String _plus = (_firstUpper + "Scheduler"); |
| _builder_1.append(_plus); |
| _builder_1.append(".getExecutorService().submit("); |
| String _defaultVariableName_1 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder_1.append(_defaultVariableName_1); |
| _builder_1.append(").get();"); |
| _xifexpression_1 = _builder_1; |
| } else { |
| StringConcatenation _builder_2 = new StringConcatenation(); |
| String _firstUpper_1 = StringExtensions.toFirstUpper(signal.getName()); |
| String _plus_1 = (_firstUpper_1 + "Scheduler"); |
| _builder_2.append(_plus_1); |
| _builder_2.append(".getExecutorService().execute("); |
| String _defaultVariableName_2 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder_2.append(_defaultVariableName_2); |
| _builder_2.append(");"); |
| _xifexpression_1 = _builder_2; |
| } |
| _builder.append(_xifexpression_1, "\t"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("}catch (Exception e) {"); |
| _builder.newLine(); |
| _builder.append("\t"); |
| _builder.append("log.error(\"Execution - \" + "); |
| String _defaultVariableName_3 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder.append(_defaultVariableName_3, "\t"); |
| _builder.append(".getDirection() + \" for \" + "); |
| String _defaultVariableName_4 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder.append(_defaultVariableName_4, "\t"); |
| _builder.append(".getName() + \" interupted!\\n\" + e.getMessage());"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("}"); |
| _builder.newLine(); |
| _builder.append("return "); |
| String _defaultVariableName_5 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder.append(_defaultVariableName_5); |
| _builder.append(".getExportPath();"); |
| _builder.newLineIfNotEmpty(); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_2); |
| }; |
| JvmOperation _method_1 = this._jvmTypesBuilder.toMethod(signal, operationname, this._typeReferenceBuilder.typeRef(Path.class), _function_1); |
| _xifexpression = this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method_1); |
| } |
| return _xifexpression; |
| } |
| |
| public boolean watcherInterchangeOperation(final JvmGenericType type, final SignalWatcher watcher, final SignalDatainterchange interchange, final String operationname) { |
| boolean _xifexpression = false; |
| boolean _equals = watcher.getExecutiontype().equals(SignalExecutionTypeEnum.SEQ); |
| if (_equals) { |
| EList<JvmMember> _members = type.getMembers(); |
| final Procedure1<JvmOperation> _function = (JvmOperation it) -> { |
| EList<JvmTypeReference> _exceptions = it.getExceptions(); |
| JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(Exception.class); |
| this._jvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef); |
| final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| CharSequence _xifexpression_1 = null; |
| SignalActionTypeEnum _actionType = interchange.getActionType(); |
| boolean _equals_1 = Objects.equal(_actionType, SignalActionTypeEnum.DATAIMPORT); |
| if (_equals_1) { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| String _basicRunConfiguration = this.df.getBasicRunConfiguration(interchange.getDataRef(), true, WorkerThreadRunnable.Direction.IMPORT.name(), this.baseInterchange(watcher)); |
| _builder_1.append(_basicRunConfiguration); |
| _builder_1.newLineIfNotEmpty(); |
| String _defaultVariableName = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder_1.append(_defaultVariableName); |
| _builder_1.append(".setDirection(WorkerThreadRunnable.Direction.IMPORT);"); |
| _builder_1.newLineIfNotEmpty(); |
| _xifexpression_1 = _builder_1; |
| } else { |
| StringConcatenation _builder_2 = new StringConcatenation(); |
| EObject _eContainer = interchange.getDataRef().eContainer(); |
| String _configFileURL = this.df.getConfigFileURL(((DataInterchangeGroup) _eContainer).getName()); |
| _builder_2.append(_configFileURL); |
| _builder_2.newLineIfNotEmpty(); |
| String _basicRunConfiguration_1 = this.df.getBasicRunConfiguration(interchange.getDataRef(), true, WorkerThreadRunnable.Direction.EXPORT.name(), this.baseInterchange(watcher)); |
| _builder_2.append(_basicRunConfiguration_1); |
| _builder_2.newLineIfNotEmpty(); |
| String _defaultVariableName_1 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder_2.append(_defaultVariableName_1); |
| _builder_2.append(".setDirection(WorkerThreadRunnable.Direction.EXPORT);"); |
| _builder_2.newLineIfNotEmpty(); |
| _xifexpression_1 = _builder_2; |
| } |
| _builder.append(_xifexpression_1); |
| _builder.newLineIfNotEmpty(); |
| CharSequence _xifexpression_2 = null; |
| DataInterchange _baseInterchange = this.baseInterchange(watcher); |
| boolean _equals_2 = Objects.equal(interchange, _baseInterchange); |
| if (_equals_2) { |
| StringConcatenation _builder_3 = new StringConcatenation(); |
| _builder_3.append("URI uri = getTriggerfile().toUri();"); |
| _builder_3.newLine(); |
| String _defaultVariableName_2 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder_3.append(_defaultVariableName_2); |
| _builder_3.append(".setFileURL(uri.toString());"); |
| _builder_3.newLineIfNotEmpty(); |
| _xifexpression_2 = _builder_3; |
| } else { |
| StringConcatenation _builder_4 = new StringConcatenation(); |
| String _defaultVariableName_3 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder_4.append(_defaultVariableName_3); |
| _builder_4.append(".setFileURL(getTriggerfile().getParent().toString() + File.separator + \""); |
| String _dataInterchangeFileName = this.df.getDataInterchangeFileName(interchange.getDataRef()); |
| _builder_4.append(_dataInterchangeFileName); |
| _builder_4.append("\");"); |
| _xifexpression_2 = _builder_4; |
| } |
| _builder.append(_xifexpression_2); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("try{"); |
| _builder.newLine(); |
| _builder.append("\t"); |
| _builder.append("WatcherImpl.getExecutorService().submit("); |
| String _defaultVariableName_4 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder.append(_defaultVariableName_4, "\t"); |
| _builder.append(").get();"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("}catch (Exception e) {"); |
| _builder.newLine(); |
| _builder.append("\t"); |
| _builder.append("log.error(\"Execution - \" + "); |
| String _defaultVariableName_5 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder.append(_defaultVariableName_5, "\t"); |
| _builder.append(".getDirection() + \" for \" + "); |
| String _defaultVariableName_6 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder.append(_defaultVariableName_6, "\t"); |
| _builder.append(".getName() + \" interupted!\\n\" + e.getMessage());"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("\t"); |
| String _defaultVariableName_7 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder.append(_defaultVariableName_7, "\t"); |
| _builder.append(".setExecutionDone(true);"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("\t"); |
| CharSequence _xifexpression_3 = null; |
| SignalActionTypeEnum _actionType_1 = interchange.getActionType(); |
| boolean _equals_3 = Objects.equal(_actionType_1, SignalActionTypeEnum.DATAIMPORT); |
| if (_equals_3) { |
| CharSequence _xifexpression_4 = null; |
| if ((Objects.equal(interchange.getDataRef(), this.baseInterchange(watcher)) && interchange.getDataRef().isDeleteFileAfterImport())) { |
| StringConcatenation _builder_5 = new StringConcatenation(); |
| _builder_5.append("renameFile(getTriggerfile(), \""); |
| String _firstUpper = StringExtensions.toFirstUpper(watcher.getName()); |
| _builder_5.append(_firstUpper); |
| _builder_5.append("WatcherJob\");"); |
| _xifexpression_4 = _builder_5; |
| } else { |
| CharSequence _xifexpression_5 = null; |
| boolean _isDeleteFileAfterImport = interchange.getDataRef().isDeleteFileAfterImport(); |
| if (_isDeleteFileAfterImport) { |
| StringConcatenation _builder_6 = new StringConcatenation(); |
| _builder_6.append("renameFile(Paths.get("); |
| String _defaultVariableName_8 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder_6.append(_defaultVariableName_8); |
| _builder_6.append(".getFileURL().toString()), \""); |
| String _firstUpper_1 = StringExtensions.toFirstUpper(watcher.getName()); |
| _builder_6.append(_firstUpper_1); |
| _builder_6.append("WatcherJob\");"); |
| _xifexpression_5 = _builder_6; |
| } |
| _xifexpression_4 = _xifexpression_5; |
| } |
| _xifexpression_3 = _xifexpression_4; |
| } |
| _builder.append(_xifexpression_3, "\t"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("}"); |
| _builder.newLine(); |
| CharSequence _xifexpression_6 = null; |
| SignalActionTypeEnum _actionType_2 = interchange.getActionType(); |
| boolean _equals_4 = Objects.equal(_actionType_2, SignalActionTypeEnum.DATAIMPORT); |
| if (_equals_4) { |
| StringConcatenation _builder_7 = new StringConcatenation(); |
| _builder_7.append("return Paths.get("); |
| String _defaultVariableName_9 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder_7.append(_defaultVariableName_9); |
| _builder_7.append(".getFileURL().getPath().substring(1));"); |
| _xifexpression_6 = _builder_7; |
| } else { |
| StringConcatenation _builder_8 = new StringConcatenation(); |
| _builder_8.append("return "); |
| String _defaultVariableName_10 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder_8.append(_defaultVariableName_10); |
| _builder_8.append(".getExportPath();"); |
| _xifexpression_6 = _builder_8; |
| } |
| _builder.append(_xifexpression_6); |
| _builder.newLineIfNotEmpty(); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_1); |
| }; |
| JvmOperation _method = this._jvmTypesBuilder.toMethod(watcher, operationname, this._typeReferenceBuilder.typeRef(Path.class), _function); |
| _xifexpression = this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method); |
| } else { |
| EList<JvmMember> _members_1 = type.getMembers(); |
| final Procedure1<JvmOperation> _function_1 = (JvmOperation it) -> { |
| EList<JvmTypeReference> _exceptions = it.getExceptions(); |
| JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(Exception.class); |
| this._jvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef); |
| final Procedure1<ITreeAppendable> _function_2 = (ITreeAppendable it_1) -> { |
| StringConcatenation _builder = new StringConcatenation(); |
| CharSequence _xifexpression_1 = null; |
| SignalActionTypeEnum _actionType = interchange.getActionType(); |
| boolean _equals_1 = Objects.equal(_actionType, SignalActionTypeEnum.DATAIMPORT); |
| if (_equals_1) { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| String _basicRunConfiguration = this.df.getBasicRunConfiguration(interchange.getDataRef(), true, WorkerThreadRunnable.Direction.IMPORT.name(), this.baseInterchange(watcher)); |
| _builder_1.append(_basicRunConfiguration); |
| _builder_1.newLineIfNotEmpty(); |
| String _defaultVariableName = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder_1.append(_defaultVariableName); |
| _builder_1.append(".setDirection(WorkerThreadRunnable.Direction.IMPORT);"); |
| _builder_1.newLineIfNotEmpty(); |
| _xifexpression_1 = _builder_1; |
| } else { |
| StringConcatenation _builder_2 = new StringConcatenation(); |
| EObject _eContainer = interchange.getDataRef().eContainer(); |
| String _configFileURL = this.df.getConfigFileURL(((DataInterchangeGroup) _eContainer).getName()); |
| _builder_2.append(_configFileURL); |
| _builder_2.newLineIfNotEmpty(); |
| String _basicRunConfiguration_1 = this.df.getBasicRunConfiguration(interchange.getDataRef(), true, WorkerThreadRunnable.Direction.EXPORT.name(), this.baseInterchange(watcher)); |
| _builder_2.append(_basicRunConfiguration_1); |
| _builder_2.newLineIfNotEmpty(); |
| String _defaultVariableName_1 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder_2.append(_defaultVariableName_1); |
| _builder_2.append(".setDirection(WorkerThreadRunnable.Direction.EXPORT);"); |
| _builder_2.newLineIfNotEmpty(); |
| _xifexpression_1 = _builder_2; |
| } |
| _builder.append(_xifexpression_1); |
| _builder.newLineIfNotEmpty(); |
| CharSequence _xifexpression_2 = null; |
| DataInterchange _baseInterchange = this.baseInterchange(watcher); |
| boolean _equals_2 = Objects.equal(interchange, _baseInterchange); |
| if (_equals_2) { |
| StringConcatenation _builder_3 = new StringConcatenation(); |
| _builder_3.append("URI uri = getTriggerfile().toUri();"); |
| _builder_3.newLine(); |
| String _defaultVariableName_2 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder_3.append(_defaultVariableName_2); |
| _builder_3.append(".setFileURL(uri.toString());"); |
| _xifexpression_2 = _builder_3; |
| } else { |
| StringConcatenation _builder_4 = new StringConcatenation(); |
| String _defaultVariableName_3 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder_4.append(_defaultVariableName_3); |
| _builder_4.append(".setFileURL(getTriggerfile().getParent().toString() + File.separator + \""); |
| String _dataInterchangeFileName = this.df.getDataInterchangeFileName(interchange.getDataRef()); |
| _builder_4.append(_dataInterchangeFileName); |
| _builder_4.append("\");"); |
| _xifexpression_2 = _builder_4; |
| } |
| _builder.append(_xifexpression_2); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("checkForCompletion("); |
| String _defaultVariableName_4 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder.append(_defaultVariableName_4); |
| _builder.append(");"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("try{"); |
| _builder.newLine(); |
| _builder.append("\t"); |
| _builder.append("WatcherImpl.getExecutorService().execute("); |
| String _defaultVariableName_5 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder.append(_defaultVariableName_5, "\t"); |
| _builder.append(");"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("}catch (Exception e) {"); |
| _builder.newLine(); |
| _builder.append("\t"); |
| _builder.append("log.error(\"Execution - \" + "); |
| String _defaultVariableName_6 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder.append(_defaultVariableName_6, "\t"); |
| _builder.append(".getDirection() + \" for \" + "); |
| String _defaultVariableName_7 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder.append(_defaultVariableName_7, "\t"); |
| _builder.append(".getName() + \" interupted!\\n\" + e.getMessage());"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("\t"); |
| String _defaultVariableName_8 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder.append(_defaultVariableName_8, "\t"); |
| _builder.append(".setExecutionDone(true);"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("\t"); |
| CharSequence _xifexpression_3 = null; |
| SignalActionTypeEnum _actionType_1 = interchange.getActionType(); |
| boolean _equals_3 = Objects.equal(_actionType_1, SignalActionTypeEnum.DATAIMPORT); |
| if (_equals_3) { |
| CharSequence _xifexpression_4 = null; |
| if ((Objects.equal(interchange.getDataRef(), this.baseInterchange(watcher)) && interchange.getDataRef().isDeleteFileAfterImport())) { |
| StringConcatenation _builder_5 = new StringConcatenation(); |
| _builder_5.append("renameFile(getTriggerfile(), \""); |
| String _firstUpper = StringExtensions.toFirstUpper(watcher.getName()); |
| _builder_5.append(_firstUpper); |
| _builder_5.append("WatcherJob\");"); |
| _xifexpression_4 = _builder_5; |
| } else { |
| CharSequence _xifexpression_5 = null; |
| boolean _isDeleteFileAfterImport = interchange.getDataRef().isDeleteFileAfterImport(); |
| if (_isDeleteFileAfterImport) { |
| StringConcatenation _builder_6 = new StringConcatenation(); |
| _builder_6.append("renameFile(Paths.get("); |
| String _defaultVariableName_9 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder_6.append(_defaultVariableName_9); |
| _builder_6.append(".getFileURL().toString()), \""); |
| String _firstUpper_1 = StringExtensions.toFirstUpper(watcher.getName()); |
| _builder_6.append(_firstUpper_1); |
| _builder_6.append("WatcherJob\");"); |
| _xifexpression_5 = _builder_6; |
| } |
| _xifexpression_4 = _xifexpression_5; |
| } |
| _xifexpression_3 = _xifexpression_4; |
| } |
| _builder.append(_xifexpression_3, "\t"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("}"); |
| _builder.newLine(); |
| CharSequence _xifexpression_6 = null; |
| SignalActionTypeEnum _actionType_2 = interchange.getActionType(); |
| boolean _equals_4 = Objects.equal(_actionType_2, SignalActionTypeEnum.DATAIMPORT); |
| if (_equals_4) { |
| StringConcatenation _builder_7 = new StringConcatenation(); |
| _builder_7.append("return Paths.get("); |
| String _defaultVariableName_10 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder_7.append(_defaultVariableName_10); |
| _builder_7.append(".getFileURL().getPath().substring(1));"); |
| _xifexpression_6 = _builder_7; |
| } else { |
| StringConcatenation _builder_8 = new StringConcatenation(); |
| _builder_8.append("return "); |
| String _defaultVariableName_11 = this.df.getDefaultVariableName(interchange.getDataRef()); |
| _builder_8.append(_defaultVariableName_11); |
| _builder_8.append(".getExportPath();"); |
| _xifexpression_6 = _builder_8; |
| } |
| _builder.append(_xifexpression_6); |
| _builder.newLineIfNotEmpty(); |
| it_1.append(_builder); |
| }; |
| this._jvmTypesBuilder.setBody(it, _function_2); |
| }; |
| JvmOperation _method_1 = this._jvmTypesBuilder.toMethod(watcher, operationname, this._typeReferenceBuilder.typeRef(Path.class), _function_1); |
| _xifexpression = this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method_1); |
| } |
| return _xifexpression; |
| } |
| |
| /** |
| * Creates the fields for all watcher and scheduler files. |
| */ |
| public void toFields(final JvmGenericType type, final SignalDefinition signal) { |
| JvmField field = null; |
| final Procedure1<JvmField> _function = (JvmField it) -> { |
| it.setVisibility(JvmVisibility.PRIVATE); |
| }; |
| field = this._jvmTypesBuilder.toField(signal, "thread", this._typeReferenceBuilder.typeRef(Thread.class), _function); |
| EList<JvmMember> _members = type.getMembers(); |
| this._jvmTypesBuilder.<JvmField>operator_add(_members, field); |
| field = this._jvmTypesBuilder.toField(signal, "persistenceService", this._typeReferenceBuilder.typeRef(IPersistenceService.class)); |
| field.setStatic(true); |
| field.setVisibility(JvmVisibility.PRIVATE); |
| EList<JvmMember> _members_1 = type.getMembers(); |
| this._jvmTypesBuilder.<JvmField>operator_add(_members_1, field); |
| field = this._jvmTypesBuilder.toField(signal, "dataInterchange", this._typeReferenceBuilder.typeRef(IDataInterchange.class)); |
| field.setStatic(true); |
| field.setVisibility(JvmVisibility.PRIVATE); |
| EList<JvmMember> _members_2 = type.getMembers(); |
| this._jvmTypesBuilder.<JvmField>operator_add(_members_2, field); |
| field = this._jvmTypesBuilder.toField(signal, "blobService", this._typeReferenceBuilder.typeRef(IBlobService.class)); |
| field.setStatic(true); |
| field.setVisibility(JvmVisibility.PRIVATE); |
| EList<JvmMember> _members_3 = type.getMembers(); |
| this._jvmTypesBuilder.<JvmField>operator_add(_members_3, field); |
| field = this._jvmTypesBuilder.toField(signal, "eventDispatcher", this._typeReferenceBuilder.typeRef(IEventDispatcher.class)); |
| field.setStatic(true); |
| field.setVisibility(JvmVisibility.PRIVATE); |
| EList<JvmMember> _members_4 = type.getMembers(); |
| this._jvmTypesBuilder.<JvmField>operator_add(_members_4, field); |
| if ((signal instanceof SignalScheduler)) { |
| field = this._jvmTypesBuilder.toField(signal, "scheduler", this._typeReferenceBuilder.typeRef(Scheduler.class)); |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("the scheduler instance"); |
| this._jvmTypesBuilder.setDocumentation(field, _builder.toString()); |
| field.setStatic(true); |
| field.setVisibility(JvmVisibility.PRIVATE); |
| EList<JvmMember> _members_5 = type.getMembers(); |
| this._jvmTypesBuilder.<JvmField>operator_add(_members_5, field); |
| } |
| } |
| |
| public String getActivate(final SignalDefinition signal) { |
| String signalName = ""; |
| if ((signal instanceof SignalWatcher)) { |
| String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName()); |
| String _plus = (_firstUpper + "Watcher"); |
| signalName = _plus; |
| } else { |
| if ((signal instanceof SignalScheduler)) { |
| String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName()); |
| String _plus_1 = (_firstUpper_1 + "Scheduler"); |
| signalName = _plus_1; |
| } |
| } |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("thread = new Thread(\""); |
| _builder.append(signalName); |
| _builder.append("\") {"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("\t"); |
| _builder.newLine(); |
| _builder.append("\t"); |
| _builder.append("@Override"); |
| _builder.newLine(); |
| _builder.append("\t"); |
| _builder.append("public void run() {"); |
| _builder.newLine(); |
| _builder.append("\t\t"); |
| CharSequence _xifexpression = null; |
| if ((signal instanceof SignalWatcher)) { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| _builder_1.append("setMaxParallelThreadsCount(getHandlerPropertyFromConfigurationFile(SignalConstants.MAXPARALLELTHREADCOUNT_NAME));"); |
| _builder_1.newLine(); |
| _builder_1.append("initMaxThreadCount();"); |
| _builder_1.newLine(); |
| _builder_1.append("startWatcherJobsHandling();"); |
| _builder_1.newLine(); |
| _builder_1.append("executeWatcherService();"); |
| _builder_1.newLine(); |
| _xifexpression = _builder_1; |
| } else { |
| CharSequence _xifexpression_1 = null; |
| if ((signal instanceof SignalScheduler)) { |
| StringConcatenation _builder_2 = new StringConcatenation(); |
| _builder_2.append("setMaxParallelThreadsCount(getHandlerPropertyFromConfigurationFile(SignalConstants.MAXPARALLELTHREADCOUNT_NAME));"); |
| _builder_2.newLine(); |
| _builder_2.append("initMaxThreadCount();"); |
| _builder_2.newLine(); |
| _builder_2.append("setExecutorService(\""); |
| _builder_2.append(signalName); |
| _builder_2.append("\");"); |
| _builder_2.newLineIfNotEmpty(); |
| _builder_2.append("executeSchedulerService();"); |
| _builder_2.newLine(); |
| _xifexpression_1 = _builder_2; |
| } |
| _xifexpression = _xifexpression_1; |
| } |
| _builder.append(_xifexpression, "\t\t"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("\t\t"); |
| _builder.append("}"); |
| _builder.newLine(); |
| _builder.append("\t"); |
| _builder.append("};"); |
| _builder.newLine(); |
| _builder.append("thread.start();"); |
| return _builder.toString(); |
| } |
| |
| public String getExecuteService(final SignalDefinition signal) { |
| String signalName = ""; |
| if ((signal instanceof SignalWatcher)) { |
| String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName()); |
| String _plus = (_firstUpper + "Watcher"); |
| signalName = _plus; |
| } else { |
| if ((signal instanceof SignalScheduler)) { |
| String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName()); |
| String _plus_1 = (_firstUpper_1 + "Scheduler"); |
| signalName = _plus_1; |
| } |
| } |
| StringConcatenation _builder = new StringConcatenation(); |
| CharSequence _xifexpression = null; |
| if ((signal instanceof SignalWatcher)) { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| _builder_1.append("try {"); |
| _builder_1.newLine(); |
| _builder_1.append("\t"); |
| String _registerHandlerPathToWatch = this.registerHandlerPathToWatch(((SignalWatcher)signal)); |
| _builder_1.append(_registerHandlerPathToWatch, "\t"); |
| _builder_1.newLineIfNotEmpty(); |
| _builder_1.append("\t"); |
| _builder_1.append("log.info(\""); |
| _builder_1.append(signalName, "\t"); |
| _builder_1.append(" service successfully started.\");"); |
| _builder_1.newLineIfNotEmpty(); |
| _builder_1.append("\t"); |
| _builder_1.append("processEvents();"); |
| _builder_1.newLine(); |
| _builder_1.append("} catch (Exception e) {"); |
| _builder_1.newLine(); |
| _builder_1.append("\t"); |
| _builder_1.append("log.error(\""); |
| _builder_1.append(signalName, "\t"); |
| _builder_1.append(" service interrupted due to: \", e);"); |
| _builder_1.newLineIfNotEmpty(); |
| _builder_1.append("}"); |
| _xifexpression = _builder_1; |
| } else { |
| CharSequence _xifexpression_1 = null; |
| if ((signal instanceof SignalScheduler)) { |
| StringConcatenation _builder_2 = new StringConcatenation(); |
| _builder_2.append("try {"); |
| _builder_2.newLine(); |
| _builder_2.append("\t"); |
| _builder_2.append("scheduler = createScheduler(\""); |
| _builder_2.append(signalName, "\t"); |
| _builder_2.append("\");"); |
| _builder_2.newLineIfNotEmpty(); |
| _builder_2.append("\t"); |
| _builder_2.append("scheduleAllJobs();"); |
| _builder_2.newLine(); |
| _builder_2.append("\t"); |
| _builder_2.append("startScheduler();"); |
| _builder_2.newLine(); |
| _builder_2.append("} catch (Exception e) {"); |
| _builder_2.newLine(); |
| _builder_2.append("\t"); |
| _builder_2.append("log.error(\""); |
| _builder_2.append(signalName, "\t"); |
| _builder_2.append(" service interrupted due to: \", e);"); |
| _builder_2.newLineIfNotEmpty(); |
| _builder_2.append("}"); |
| _xifexpression_1 = _builder_2; |
| } |
| _xifexpression = _xifexpression_1; |
| } |
| _builder.append(_xifexpression); |
| return _builder.toString(); |
| } |
| |
| public String getDeactivate(final SignalDefinition signal) { |
| String signalName = ""; |
| if ((signal instanceof SignalWatcher)) { |
| String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName()); |
| String _plus = (_firstUpper + "Watcher"); |
| signalName = _plus; |
| } else { |
| if ((signal instanceof SignalScheduler)) { |
| String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName()); |
| String _plus_1 = (_firstUpper_1 + "Scheduler"); |
| signalName = _plus_1; |
| } |
| } |
| StringConcatenation _builder = new StringConcatenation(); |
| CharSequence _xifexpression = null; |
| if ((signal instanceof SignalScheduler)) { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| _builder_1.append("try {"); |
| _builder_1.newLine(); |
| _builder_1.append("\t"); |
| _builder_1.append("if(scheduler != null){"); |
| _builder_1.newLine(); |
| _builder_1.append("\t\t"); |
| _builder_1.append("shutdownScheduler(false);"); |
| _builder_1.newLine(); |
| _builder_1.append("\t"); |
| _builder_1.append("}"); |
| _builder_1.newLine(); |
| _builder_1.append("\t"); |
| _builder_1.append("thread.join();"); |
| _builder_1.newLine(); |
| _builder_1.append("} catch (Exception e) {"); |
| _builder_1.newLine(); |
| _builder_1.append("\t"); |
| _builder_1.append("log.error(\""); |
| _builder_1.append(signalName, "\t"); |
| _builder_1.append(" service shortly interrupted ...\", e);"); |
| _builder_1.newLineIfNotEmpty(); |
| _builder_1.append("}"); |
| _builder_1.newLine(); |
| _builder_1.append("log.info(\""); |
| _builder_1.append(signalName); |
| _builder_1.append(" service shutted down...\");"); |
| _builder_1.newLineIfNotEmpty(); |
| _xifexpression = _builder_1; |
| } else { |
| StringConcatenation _builder_2 = new StringConcatenation(); |
| _builder_2.append("try {"); |
| _builder_2.newLine(); |
| _builder_2.append("\t"); |
| _builder_2.append("closeWatcher();"); |
| _builder_2.newLine(); |
| _builder_2.append("\t"); |
| _builder_2.append("stopWatcherJobsHandling();"); |
| _builder_2.newLine(); |
| _builder_2.append("\t"); |
| _builder_2.append("thread.join();"); |
| _builder_2.newLine(); |
| _builder_2.append("} catch (Exception e) {"); |
| _builder_2.newLine(); |
| _builder_2.append("\t"); |
| _builder_2.append("log.error(\""); |
| _builder_2.append(signalName, "\t"); |
| _builder_2.append(" service shortly interrupted ...\", e);"); |
| _builder_2.newLineIfNotEmpty(); |
| _builder_2.append("}"); |
| _builder_2.newLine(); |
| _builder_2.append("log.info(\""); |
| _builder_2.append(signalName); |
| _builder_2.append(" service shutted down...\");"); |
| _builder_2.newLineIfNotEmpty(); |
| _xifexpression = _builder_2; |
| } |
| _builder.append(_xifexpression); |
| _builder.newLineIfNotEmpty(); |
| return _builder.toString(); |
| } |
| |
| public String scheduleAllJobs(final SignalScheduler scheduler) { |
| String _firstUpper = StringExtensions.toFirstUpper(scheduler.getName()); |
| String signalName = (_firstUpper + "Scheduler"); |
| int index = 1; |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("log.info(\""); |
| _builder.append(signalName); |
| _builder.append(" - Starting scheduling all jobs ...\");"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("Trigger trigger; JobDetail job; Date ft; String expr; int hour; int min; int dOw; int dOm; String key;String keyOne;String keyTwo;"); |
| _builder.newLine(); |
| String result = _builder.toString(); |
| SchedulerType _schedulertype = scheduler.getSchedulertype(); |
| if ((_schedulertype instanceof CronScheduler)) { |
| SchedulerType _schedulertype_1 = scheduler.getSchedulertype(); |
| CronScheduler type = ((CronScheduler) _schedulertype_1); |
| if ((((type != null) && (type.getExpression() != null)) && (!type.getExpression().isEmpty()))) { |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| _builder_1.append("job = createDataTransferJob(\""); |
| QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_1.append(_fullyQualifiedName); |
| _builder_1.append("SchedulerJob"); |
| _builder_1.append(index); |
| _builder_1.append("\", \"jobs\", \"-\", "); |
| boolean _equals = scheduler.getExecutiontype().equals(SignalExecutionTypeEnum.SEQ); |
| _builder_1.append(_equals); |
| _builder_1.append(", \""); |
| QualifiedName _fullyQualifiedName_1 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_1.append(_fullyQualifiedName_1); |
| _builder_1.append("\", "); |
| _builder_1.append(signalName); |
| _builder_1.append(".class);"); |
| _builder_1.newLineIfNotEmpty(); |
| _builder_1.append("key = \""); |
| QualifiedName _fullyQualifiedName_2 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_1.append(_fullyQualifiedName_2); |
| _builder_1.append("Scheduler\" + SignalConstants.CRON_SCHEDULER;"); |
| _builder_1.newLineIfNotEmpty(); |
| _builder_1.append("expr = getCronExpressionValue(getHandlerPropertyFromConfigurationFile(key));"); |
| _builder_1.newLine(); |
| _builder_1.append("trigger = createCronTrigger(\""); |
| QualifiedName _fullyQualifiedName_3 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_1.append(_fullyQualifiedName_3); |
| _builder_1.append("SchedulerTrigger"); |
| _builder_1.append(index); |
| _builder_1.append("\", \"triggers\", expr != null ? expr : \""); |
| String _expression = type.getExpression(); |
| _builder_1.append(_expression); |
| _builder_1.append("\");"); |
| _builder_1.newLineIfNotEmpty(); |
| _builder_1.append("ft = scheduleJob(job, trigger);"); |
| _builder_1.newLine(); |
| _builder_1.append("log.info(\""); |
| String _firstUpper_1 = StringExtensions.toFirstUpper(scheduler.getName()); |
| _builder_1.append(_firstUpper_1); |
| _builder_1.append("SchedulerJob"); |
| _builder_1.append(index); |
| _builder_1.append(" has been scheduled to run at: \" + ft);"); |
| _builder_1.newLineIfNotEmpty(); |
| result = result.concat(_builder_1.toString()); |
| } |
| } else { |
| SchedulerType _schedulertype_2 = scheduler.getSchedulertype(); |
| if ((_schedulertype_2 instanceof HourlyScheduler)) { |
| SchedulerType _schedulertype_3 = scheduler.getSchedulertype(); |
| HourlyScheduler type_1 = ((HourlyScheduler) _schedulertype_3); |
| if (((type_1 != null) && (type_1.getMinute() > (-1)))) { |
| StringConcatenation _builder_2 = new StringConcatenation(); |
| _builder_2.append("job = createDataTransferJob(\""); |
| QualifiedName _fullyQualifiedName_4 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_2.append(_fullyQualifiedName_4); |
| _builder_2.append("SchedulerJob"); |
| _builder_2.append(index); |
| _builder_2.append("\", \"jobs\", \"-\", "); |
| boolean _equals_1 = scheduler.getExecutiontype().equals(SignalExecutionTypeEnum.SEQ); |
| _builder_2.append(_equals_1); |
| _builder_2.append(", \""); |
| QualifiedName _fullyQualifiedName_5 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_2.append(_fullyQualifiedName_5); |
| _builder_2.append("\", "); |
| _builder_2.append(signalName); |
| _builder_2.append(".class);"); |
| _builder_2.newLineIfNotEmpty(); |
| _builder_2.append("key = \""); |
| QualifiedName _fullyQualifiedName_6 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_2.append(_fullyQualifiedName_6); |
| _builder_2.append("Scheduler\" + SignalConstants.HOURLY_SCHEDULER;"); |
| _builder_2.newLineIfNotEmpty(); |
| _builder_2.append("min = getMinutesValue(getHandlerPropertyFromConfigurationFile(key));"); |
| _builder_2.newLine(); |
| _builder_2.append("trigger = createHourlyTrigger(\""); |
| QualifiedName _fullyQualifiedName_7 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_2.append(_fullyQualifiedName_7); |
| _builder_2.append("SchedulerTrigger"); |
| _builder_2.append(index); |
| _builder_2.append("\", \"triggers\", min>=0? min : "); |
| int _minute = type_1.getMinute(); |
| _builder_2.append(_minute); |
| _builder_2.append(");"); |
| _builder_2.newLineIfNotEmpty(); |
| _builder_2.append("ft = scheduleJob(job, trigger);"); |
| _builder_2.newLine(); |
| _builder_2.append("log.info(\""); |
| String _firstUpper_2 = StringExtensions.toFirstUpper(scheduler.getName()); |
| _builder_2.append(_firstUpper_2); |
| _builder_2.append("SchedulerJob"); |
| _builder_2.append(index); |
| _builder_2.append(" has been scheduled to run at: \" + ft);"); |
| _builder_2.newLineIfNotEmpty(); |
| result = result.concat(_builder_2.toString()); |
| } |
| } else { |
| SchedulerType _schedulertype_4 = scheduler.getSchedulertype(); |
| if ((_schedulertype_4 instanceof DailyScheduler)) { |
| SchedulerType _schedulertype_5 = scheduler.getSchedulertype(); |
| DailyScheduler type_2 = ((DailyScheduler) _schedulertype_5); |
| if ((((type_2 != null) && (type_2.getHour() > (-1))) && (type_2.getMinute() > (-1)))) { |
| StringConcatenation _builder_3 = new StringConcatenation(); |
| _builder_3.append("job = createDataTransferJob(\""); |
| QualifiedName _fullyQualifiedName_8 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_3.append(_fullyQualifiedName_8); |
| _builder_3.append("SchedulerJob"); |
| _builder_3.append(index); |
| _builder_3.append("\", \"jobs\", \"-\", "); |
| boolean _equals_2 = scheduler.getExecutiontype().equals(SignalExecutionTypeEnum.SEQ); |
| _builder_3.append(_equals_2); |
| _builder_3.append(", \""); |
| QualifiedName _fullyQualifiedName_9 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_3.append(_fullyQualifiedName_9); |
| _builder_3.append("\", "); |
| _builder_3.append(signalName); |
| _builder_3.append(".class);"); |
| _builder_3.newLineIfNotEmpty(); |
| _builder_3.append("key = \""); |
| QualifiedName _fullyQualifiedName_10 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_3.append(_fullyQualifiedName_10); |
| _builder_3.append("Scheduler\" + SignalConstants.DAILY_SCHEDULER_HOUR;"); |
| _builder_3.newLineIfNotEmpty(); |
| _builder_3.append("hour = getHourValue(getHandlerPropertyFromConfigurationFile(key));"); |
| _builder_3.newLine(); |
| _builder_3.append("keyOne = \""); |
| QualifiedName _fullyQualifiedName_11 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_3.append(_fullyQualifiedName_11); |
| _builder_3.append("Scheduler\" + SignalConstants.DAILY_SCHEDULER_MIN;"); |
| _builder_3.newLineIfNotEmpty(); |
| _builder_3.append("min = getMinutesValue(getHandlerPropertyFromConfigurationFile(keyOne));"); |
| _builder_3.newLine(); |
| _builder_3.append("trigger = createDailyTriggerAtHourandMins(\""); |
| QualifiedName _fullyQualifiedName_12 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_3.append(_fullyQualifiedName_12); |
| _builder_3.append("SchedulerTrigger"); |
| _builder_3.append(index); |
| _builder_3.append("\", \"triggers\", hour>=0 ? hour : "); |
| int _hour = type_2.getHour(); |
| _builder_3.append(_hour); |
| _builder_3.append(", min>=0 ? min : "); |
| int _minute_1 = type_2.getMinute(); |
| _builder_3.append(_minute_1); |
| _builder_3.append(");"); |
| _builder_3.newLineIfNotEmpty(); |
| _builder_3.append("ft = scheduleJob(job, trigger);"); |
| _builder_3.newLine(); |
| _builder_3.append("log.info(\""); |
| String _firstUpper_3 = StringExtensions.toFirstUpper(scheduler.getName()); |
| _builder_3.append(_firstUpper_3); |
| _builder_3.append("SchedulerJob"); |
| _builder_3.append(index); |
| _builder_3.append(" has been scheduled to run at: \" + ft);"); |
| _builder_3.newLineIfNotEmpty(); |
| result = result.concat(_builder_3.toString()); |
| } |
| } else { |
| SchedulerType _schedulertype_6 = scheduler.getSchedulertype(); |
| if ((_schedulertype_6 instanceof WeeklyScheduler)) { |
| SchedulerType _schedulertype_7 = scheduler.getSchedulertype(); |
| WeeklyScheduler type_3 = ((WeeklyScheduler) _schedulertype_7); |
| if (((((type_3 != null) && (type_3.getDayofweek() != null)) && (type_3.getHour() > (-1))) && |
| (type_3.getMinute() > (-1)))) { |
| StringConcatenation _builder_4 = new StringConcatenation(); |
| _builder_4.append("job = createDataTransferJob(\""); |
| QualifiedName _fullyQualifiedName_13 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_4.append(_fullyQualifiedName_13); |
| _builder_4.append("SchedulerJob"); |
| _builder_4.append(index); |
| _builder_4.append("\", \"jobs\", \"-\", "); |
| boolean _equals_3 = scheduler.getExecutiontype().equals(SignalExecutionTypeEnum.SEQ); |
| _builder_4.append(_equals_3); |
| _builder_4.append(", \""); |
| QualifiedName _fullyQualifiedName_14 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_4.append(_fullyQualifiedName_14); |
| _builder_4.append("\", "); |
| _builder_4.append(signalName); |
| _builder_4.append(".class);"); |
| _builder_4.newLineIfNotEmpty(); |
| _builder_4.append("key = \""); |
| QualifiedName _fullyQualifiedName_15 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_4.append(_fullyQualifiedName_15); |
| _builder_4.append("Scheduler\" + SignalConstants.WEEKLY_SCHEDULER_DAYOFWEEK;"); |
| _builder_4.newLineIfNotEmpty(); |
| _builder_4.append("dOw = getDayOfWeekValue(getHandlerPropertyFromConfigurationFile(key));"); |
| _builder_4.newLine(); |
| _builder_4.append("keyOne = \""); |
| QualifiedName _fullyQualifiedName_16 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_4.append(_fullyQualifiedName_16); |
| _builder_4.append("Scheduler\" + SignalConstants.WEEKLY_SCHEDULER_HOUR;"); |
| _builder_4.newLineIfNotEmpty(); |
| _builder_4.append("hour = getHourValue(getHandlerPropertyFromConfigurationFile(keyOne));"); |
| _builder_4.newLine(); |
| _builder_4.append("keyTwo = \""); |
| QualifiedName _fullyQualifiedName_17 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_4.append(_fullyQualifiedName_17); |
| _builder_4.append("Scheduler\" + SignalConstants.WEEKLY_SCHEDULER_MIN;"); |
| _builder_4.newLineIfNotEmpty(); |
| _builder_4.append("min = getMinutesValue(getHandlerPropertyFromConfigurationFile(keyTwo));"); |
| _builder_4.newLine(); |
| _builder_4.append("trigger = createWeeklyTriggerOnDayAndHourAndMinute(\""); |
| QualifiedName _fullyQualifiedName_18 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_4.append(_fullyQualifiedName_18); |
| _builder_4.append("SchedulerTrigger"); |
| _builder_4.append(index); |
| _builder_4.append("\", \"triggers\", dOw>0? dOw : "); |
| int _ordinal = type_3.getDayofweek().ordinal(); |
| _builder_4.append(_ordinal); |
| _builder_4.append(", hour>=0 ? hour : "); |
| int _hour_1 = type_3.getHour(); |
| _builder_4.append(_hour_1); |
| _builder_4.append(", min>=0 ? min : "); |
| int _minute_2 = type_3.getMinute(); |
| _builder_4.append(_minute_2); |
| _builder_4.append(");"); |
| _builder_4.newLineIfNotEmpty(); |
| _builder_4.append("ft = scheduleJob(job, trigger);"); |
| _builder_4.newLine(); |
| _builder_4.append("log.info(\""); |
| String _firstUpper_4 = StringExtensions.toFirstUpper(scheduler.getName()); |
| _builder_4.append(_firstUpper_4); |
| _builder_4.append("SchedulerJob"); |
| _builder_4.append(index); |
| _builder_4.append(" has been scheduled to run at: \" + ft);"); |
| _builder_4.newLineIfNotEmpty(); |
| result = result.concat(_builder_4.toString()); |
| } |
| } else { |
| SchedulerType _schedulertype_8 = scheduler.getSchedulertype(); |
| if ((_schedulertype_8 instanceof MonthlyScheduler)) { |
| SchedulerType _schedulertype_9 = scheduler.getSchedulertype(); |
| MonthlyScheduler type_4 = ((MonthlyScheduler) _schedulertype_9); |
| if (((((type_4 != null) && (type_4.getDayofmonth() > (-1))) && (type_4.getHour() > (-1))) && (type_4.getMinute() > (-1)))) { |
| StringConcatenation _builder_5 = new StringConcatenation(); |
| _builder_5.append("job = createDataTransferJob(\""); |
| QualifiedName _fullyQualifiedName_19 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_5.append(_fullyQualifiedName_19); |
| _builder_5.append("SchedulerJob"); |
| _builder_5.append(index); |
| _builder_5.append("\", \"jobs\", \"-\", "); |
| boolean _equals_4 = scheduler.getExecutiontype().equals(SignalExecutionTypeEnum.SEQ); |
| _builder_5.append(_equals_4); |
| _builder_5.append(", \""); |
| QualifiedName _fullyQualifiedName_20 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_5.append(_fullyQualifiedName_20); |
| _builder_5.append("\", "); |
| _builder_5.append(signalName); |
| _builder_5.append(".class);"); |
| _builder_5.newLineIfNotEmpty(); |
| _builder_5.append("key = \""); |
| QualifiedName _fullyQualifiedName_21 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_5.append(_fullyQualifiedName_21); |
| _builder_5.append("Scheduler\" + SignalConstants.MONTHLY_SCHEDULER_DAYOFMONTH;"); |
| _builder_5.newLineIfNotEmpty(); |
| _builder_5.append("dOm = getDayOfMonthValue(getHandlerPropertyFromConfigurationFile(key));"); |
| _builder_5.newLine(); |
| _builder_5.append("keyOne = \""); |
| QualifiedName _fullyQualifiedName_22 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_5.append(_fullyQualifiedName_22); |
| _builder_5.append("Scheduler\" + SignalConstants.MONTHLY_SCHEDULER_HOUR;"); |
| _builder_5.newLineIfNotEmpty(); |
| _builder_5.append("hour = getHourValue(getHandlerPropertyFromConfigurationFile(keyOne));"); |
| _builder_5.newLine(); |
| _builder_5.append("keyTwo = \""); |
| QualifiedName _fullyQualifiedName_23 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_5.append(_fullyQualifiedName_23); |
| _builder_5.append("Scheduler\" + SignalConstants.MONTHLY_SCHEDULER_MIN;"); |
| _builder_5.newLineIfNotEmpty(); |
| _builder_5.append("min = getMinutesValue(getHandlerPropertyFromConfigurationFile(keyTwo));"); |
| _builder_5.newLine(); |
| _builder_5.append("trigger = createMonthlyTriggerOnDayAndHourAndMinute(\""); |
| QualifiedName _fullyQualifiedName_24 = this._iQualifiedNameProvider.getFullyQualifiedName(scheduler); |
| _builder_5.append(_fullyQualifiedName_24); |
| _builder_5.append("SchedulerTrigger"); |
| _builder_5.append(index); |
| _builder_5.append("\", \"triggers\", dOm>0? dOm : "); |
| int _dayofmonth = type_4.getDayofmonth(); |
| _builder_5.append(_dayofmonth); |
| _builder_5.append(", hour>=0 ? hour : "); |
| int _hour_2 = type_4.getHour(); |
| _builder_5.append(_hour_2); |
| _builder_5.append(", min>=0 ? min : "); |
| int _minute_3 = type_4.getMinute(); |
| _builder_5.append(_minute_3); |
| _builder_5.append(");"); |
| _builder_5.newLineIfNotEmpty(); |
| _builder_5.append("ft = scheduleJob(job, trigger);"); |
| _builder_5.newLine(); |
| _builder_5.append("log.info(\""); |
| String _firstUpper_5 = StringExtensions.toFirstUpper(scheduler.getName()); |
| _builder_5.append(_firstUpper_5); |
| _builder_5.append("SchedulerJob"); |
| _builder_5.append(index); |
| _builder_5.append(" has been scheduled to run at: \" + ft);"); |
| _builder_5.newLineIfNotEmpty(); |
| result = result.concat(_builder_5.toString()); |
| } |
| } |
| } |
| } |
| } |
| } |
| index++; |
| StringConcatenation _builder_6 = new StringConcatenation(); |
| _builder_6.append("log.info(\""); |
| _builder_6.append(signalName); |
| _builder_6.append(" - Scheduling all jobs done.\");"); |
| result = result.concat(_builder_6.toString()); |
| return result; |
| } |
| |
| public String registerHandlerPathToWatch(final SignalWatcher signal) { |
| String result = ""; |
| DataInterchange interchange = this.baseInterchange(signal); |
| if ((interchange != null)) { |
| String modelurl = this.df.getDataInterchangeDirectoryUrlPath(interchange); |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("registerUrl(getHandlerPropertyFromConfigurationFile(\""); |
| String _name = interchange.getName(); |
| _builder.append(_name); |
| _builder.append("-import\"),\""); |
| _builder.append(modelurl); |
| _builder.append("\");"); |
| _builder.newLineIfNotEmpty(); |
| result = result.concat(_builder.toString()); |
| } |
| return result; |
| } |
| |
| /** |
| * Special function to read signal (watcher or scheduler) properties |
| * from configuration files. |
| */ |
| public String handlerPropertyFromConfigurationFile(final SignalDefinition signal) { |
| if ((signal != null)) { |
| String signalName = ""; |
| if ((signal instanceof SignalWatcher)) { |
| String _firstUpper = StringExtensions.toFirstUpper(((SignalWatcher)signal).getName()); |
| String _plus = (_firstUpper + "Watcher"); |
| signalName = _plus; |
| } else { |
| if ((signal instanceof SignalScheduler)) { |
| String _firstUpper_1 = StringExtensions.toFirstUpper(((SignalScheduler)signal).getName()); |
| String _plus_1 = (_firstUpper_1 + "Scheduler"); |
| signalName = _plus_1; |
| } |
| } |
| StringConcatenation _builder = new StringConcatenation(); |
| _builder.append("if (propertyname != null) {"); |
| _builder.newLine(); |
| _builder.append("\t"); |
| String _configFileURL = this.df.getConfigFileURL(signal.getInterchangegroup().getName()); |
| _builder.append(_configFileURL, "\t"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("\t"); |
| _builder.append("File file = new File(url);"); |
| _builder.newLine(); |
| _builder.append("\t"); |
| _builder.append("if (file.exists()) {"); |
| _builder.newLine(); |
| _builder.append("\t\t"); |
| _builder.append("try {"); |
| _builder.newLine(); |
| _builder.append("\t\t\t"); |
| _builder.append("FileInputStream fileInput = new FileInputStream(file);"); |
| _builder.newLine(); |
| _builder.append("\t\t\t"); |
| _builder.append("Properties properties = new Properties();"); |
| _builder.newLine(); |
| _builder.append("\t\t\t"); |
| _builder.append("properties.loadFromXML(fileInput);"); |
| _builder.newLine(); |
| _builder.append("\t\t\t"); |
| _builder.append("fileInput.close();"); |
| _builder.newLine(); |
| _builder.append("\t\t\t"); |
| _builder.append("String value = properties.getProperty(propertyname);"); |
| _builder.newLine(); |
| _builder.append("\t\t\t"); |
| _builder.append("if (value != null) {"); |
| _builder.newLine(); |
| _builder.append("\t\t\t\t"); |
| _builder.append("if (log.isDebugEnabled()) {"); |
| _builder.newLine(); |
| _builder.append("\t\t\t\t\t"); |
| _builder.append("log.debug(\""); |
| _builder.append(signalName, "\t\t\t\t\t"); |
| _builder.append(" - getHandlerPropertyFromConfigurationFile propertyname[\" + propertyname"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("\t\t\t\t\t\t\t"); |
| _builder.append("+ \"] -> value [\" + value + \"]\");"); |
| _builder.newLine(); |
| _builder.append("\t\t\t\t"); |
| _builder.append("}"); |
| _builder.newLine(); |
| _builder.append("\t\t\t\t"); |
| _builder.append("return value;"); |
| _builder.newLine(); |
| _builder.append("\t\t\t"); |
| _builder.append("}"); |
| _builder.newLine(); |
| _builder.append("\t\t"); |
| _builder.append("} catch (IOException e) {"); |
| _builder.newLine(); |
| _builder.append("\t\t\t"); |
| _builder.append("StringWriter sw = new StringWriter();"); |
| _builder.newLine(); |
| _builder.append("\t\t\t"); |
| _builder.append("e.printStackTrace(new PrintWriter(sw));"); |
| _builder.newLine(); |
| _builder.append("\t\t\t"); |
| _builder.append("log.error(\""); |
| _builder.append(signalName, "\t\t\t"); |
| _builder.append(" - Error during getHandlerPropertyFromConfigurationFile of propertyname: [\" + propertyname"); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("\t\t\t\t\t"); |
| _builder.append("+ \"] ... {}\", sw.toString());"); |
| _builder.newLine(); |
| _builder.append("\t\t"); |
| _builder.append("}"); |
| _builder.newLine(); |
| _builder.append("\t"); |
| _builder.append("}"); |
| _builder.newLine(); |
| _builder.append("}"); |
| _builder.newLine(); |
| _builder.append("if (log.isDebugEnabled()) {"); |
| _builder.newLine(); |
| _builder.append("\t"); |
| _builder.append("log.debug(\""); |
| _builder.append(signalName, "\t"); |
| _builder.append(" - getHandlerPropertyFromConfigurationFile propertyname[\" + propertyname + \"] -> value [null] because the given path\""); |
| _builder.newLineIfNotEmpty(); |
| _builder.append("\t"); |
| _builder.append("+ \" in \'Window->Preferences->OSBP Application Configuration->External Data Sources->DataInterchange Settings\' is non-existing or the propertyname is not defined.\");"); |
| _builder.newLine(); |
| _builder.append("}"); |
| _builder.newLine(); |
| _builder.append("return null;"); |
| _builder.newLine(); |
| return _builder.toString(); |
| } |
| StringConcatenation _builder_1 = new StringConcatenation(); |
| _builder_1.append("return \"\";"); |
| return _builder_1.toString(); |
| } |
| |
| public boolean hasSchedulers(final SignalPackage pck) { |
| if ((((pck != null) && (pck.getSignals() != null)) && (!pck.getSignals().isEmpty()))) { |
| EList<SignalDefinition> _signals = pck.getSignals(); |
| for (final SignalDefinition signal : _signals) { |
| if ((signal instanceof SignalScheduler)) { |
| return true; |
| } |
| } |
| } |
| return false; |
| } |
| |
| public boolean hasWatchers(final SignalPackage pck) { |
| if ((((pck != null) && (pck.getSignals() != null)) && (!pck.getSignals().isEmpty()))) { |
| EList<SignalDefinition> _signals = pck.getSignals(); |
| for (final SignalDefinition signal : _signals) { |
| if ((signal instanceof SignalScheduler)) { |
| return true; |
| } |
| } |
| } |
| return false; |
| } |
| |
| public int getSignalCount(final SignalPackage pck, final boolean isWatcher) { |
| if ((((pck != null) && (pck.getSignals() != null)) && (!pck.getSignals().isEmpty()))) { |
| int count = 0; |
| EList<SignalDefinition> _signals = pck.getSignals(); |
| for (final SignalDefinition signal : _signals) { |
| if ((isWatcher && (signal instanceof SignalWatcher))) { |
| count++; |
| } else { |
| if (((!isWatcher) && (signal instanceof SignalScheduler))) { |
| count++; |
| } |
| } |
| } |
| return count; |
| } |
| return (-1); |
| } |
| |
| public boolean hasFunctionWithFile(final SignalDefinition signal) { |
| if ((((signal != null) && (signal.getTasks() != null)) && (!signal.getTasks().isEmpty()))) { |
| EList<SignalTask> _tasks = signal.getTasks(); |
| for (final SignalTask task : _tasks) { |
| if ((task instanceof SignalFunction)) { |
| if ((((SignalFunction)task).isOnExportFile() || ((SignalFunction)task).isOnImportFile())) { |
| return true; |
| } |
| } |
| } |
| } |
| return false; |
| } |
| |
| /** |
| * Gives back the default interchange unit. |
| */ |
| public DataInterchange baseInterchange(final SignalDefinition signal) { |
| if ((signal instanceof SignalWatcher)) { |
| DataInterchange _defaultInterchange = ((SignalWatcher)signal).getDefaultInterchange(); |
| boolean _tripleNotEquals = (_defaultInterchange != null); |
| if (_tripleNotEquals) { |
| return ((SignalWatcher)signal).getDefaultInterchange(); |
| } else { |
| if (((((SignalWatcher)signal).getTasks() != null) && (!((SignalWatcher)signal).getTasks().isEmpty()))) { |
| EList<SignalTask> _tasks = ((SignalWatcher)signal).getTasks(); |
| for (final SignalTask task : _tasks) { |
| if ((task instanceof SignalDatainterchange)) { |
| boolean _isBaseinterchange = ((SignalDatainterchange)task).isBaseinterchange(); |
| if (_isBaseinterchange) { |
| return ((SignalDatainterchange)task).getDataRef(); |
| } |
| } |
| } |
| } |
| } |
| } |
| return null; |
| } |
| |
| public int definedBaseInterchangeCount(final SignalDefinition signal) { |
| int count = 0; |
| EList<SignalTask> _tasks = signal.getTasks(); |
| for (final SignalTask task : _tasks) { |
| if ((task instanceof SignalDatainterchange)) { |
| boolean _isBaseinterchange = ((SignalDatainterchange)task).isBaseinterchange(); |
| if (_isBaseinterchange) { |
| count++; |
| } |
| } |
| } |
| return count; |
| } |
| |
| public SignalDatainterchange definedBaseInterchange(final SignalDefinition signal) { |
| EList<SignalTask> _tasks = signal.getTasks(); |
| for (final SignalTask task : _tasks) { |
| if ((task instanceof SignalDatainterchange)) { |
| boolean _isBaseinterchange = ((SignalDatainterchange)task).isBaseinterchange(); |
| if (_isBaseinterchange) { |
| return ((SignalDatainterchange)task); |
| } |
| } |
| } |
| return null; |
| } |
| |
| public int taskCount(final SignalDefinition signal, final boolean interchange) { |
| int count = 0; |
| EList<SignalTask> _tasks = signal.getTasks(); |
| for (final SignalTask task : _tasks) { |
| if (interchange) { |
| if ((task instanceof SignalDatainterchange)) { |
| count++; |
| } |
| } else { |
| if ((task instanceof SignalFunction)) { |
| count++; |
| } |
| } |
| } |
| return count; |
| } |
| |
| public void infer(final EObject signalPackage, final IJvmDeclaredTypeAcceptor acceptor, final boolean isPreIndexingPhase) { |
| if (signalPackage instanceof SignalPackage) { |
| _infer((SignalPackage)signalPackage, acceptor, isPreIndexingPhase); |
| return; |
| } else if (signalPackage != null) { |
| _infer(signalPackage, acceptor, isPreIndexingPhase); |
| return; |
| } else { |
| throw new IllegalArgumentException("Unhandled parameter types: " + |
| Arrays.<Object>asList(signalPackage, acceptor, isPreIndexingPhase).toString()); |
| } |
| } |
| } |