/* * Copyright 2016 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package org.drools.workbench.screens.guided.dtable.client.widget.analysis; import java.util.logging.Logger; import com.google.gwt.webworker.client.Worker; import org.drools.workbench.services.verifier.plugin.client.api.Initialize; import org.drools.workbench.services.verifier.plugin.client.api.RequestStatus; import org.uberfire.commons.validation.PortablePreconditions; public class VerifierWebWorkerConnectionImpl implements VerifierWebWorkerConnection { private static final Logger LOGGER = Logger.getLogger( "DTable Analyzer" ); private Worker worker = null; private final Poster poster; private final Receiver receiver; private final Initialize initialize; public VerifierWebWorkerConnectionImpl( final Initialize initialize, final Poster poster, final Receiver receiver ) { this.initialize = PortablePreconditions.checkNotNull( "initialize", initialize ); this.poster = PortablePreconditions.checkNotNull( "poster", poster ); this.receiver = PortablePreconditions.checkNotNull( "receiver", receiver ); LOGGER.finest( "Created Web Worker" ); } private void startWorker() { worker = Worker.create( "verifier/verifier.nocache.js" ); poster.setUp( worker ); receiver.setUp( worker ); } @Override public void activate() { receiver.activate(); if ( worker == null ) { startWorker(); poster.post( initialize ); } else { poster.post( new RequestStatus() ); } } @Override public void terminate() { if ( worker != null ) { worker.terminate(); } } }