Package com.dooapp.graphviz

Source Code of com.dooapp.graphviz.DotGeneratorGrapherChangeListener

package com.dooapp.graphviz;

import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.Collection;
import java.util.TreeSet;
import java.util.logging.Logger;

import com.dooapp.gaedo.finders.QueryStatement;
import com.dooapp.gaedo.finders.QueryStatement.State;

/**
* Log all query statements when a query statement goes into {@link State#SORTING}
* @author ndx
*
*/
public class DotGeneratorGrapherChangeListener implements
    PropertyChangeListener {
  private final Collection<String> loggedQueries = new TreeSet<String>();
  private static final Logger logger = Logger.getLogger("graphviz");

  @Override
  public void propertyChange(PropertyChangeEvent evt) {
    if(QueryStatement.STATE_PROPERTY.equals(evt.getPropertyName())) {
      if(evt.getSource() instanceof QueryStatement) {
        if(evt.getNewValue()==QueryStatement.State.EXECUTED) {
          QueryStatement source = (QueryStatement) evt.getSource();
          if(!loggedQueries.contains(source.getId())) {
            loggedQueries.add(source.getId());
            QueryStatementDotGenerator generator = new QueryStatementDotGenerator(source.getId());
            source.accept(generator);
            logger.info("Run query\n"+source.getId()+"\n"+generator.getText());
          }
        }
      }
    }
  }

}
TOP

Related Classes of com.dooapp.graphviz.DotGeneratorGrapherChangeListener

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.