/*! ****************************************************************************** * * Pentaho Data Integration * * Copyright (C) 2002-2013 by Pentaho : http://www.pentaho.com * ******************************************************************************* * * 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.pentaho.di.core.logging; import java.util.Date; import org.pentaho.di.repository.ObjectId; import org.pentaho.di.repository.ObjectRevision; import org.pentaho.di.repository.RepositoryDirectoryInterface; public interface LoggingObjectInterface { /** * Gets the object name. * * @return the name */ public String getObjectName(); /** * Gets the repository directory. * * @return the repositoryDirectory */ public RepositoryDirectoryInterface getRepositoryDirectory(); /** * Gets the filename. * * @return the filename */ public String getFilename(); /** * Gets the object id in a repository. * * @return the objectId in a repository */ public ObjectId getObjectId(); /** * Gets the objects revision in a repository. * * @return the object revision in a repository */ public ObjectRevision getObjectRevision(); /** * Gets the log channel id. * * @return the log channel id */ public String getLogChannelId(); /** * Gets the parent. * * @return the parent */ public LoggingObjectInterface getParent(); /** * Gets the object type. * * @return the objectType */ public LoggingObjectType getObjectType(); /** * Gets a string identifying a copy in a series of steps. * * @return A string identifying a copy in a series of steps. */ public String getObjectCopy(); /** * Gets the logging level of the log channel of this logging object. * * @return The logging level of the log channel of this logging object. */ public LogLevel getLogLevel(); /** * Gets the execution container (Carte/DI server/BI Server) object id. We use this to see to which copy of the * job/trans hierarchy this object belongs. If it is null, we assume that we are running a single copy in * Spoon/Pan/Kitchen. * * @return The execution container (Carte/DI server/BI Server) object id. */ public String getContainerObjectId(); /** * Gets the registration date of this logging object. Null if it's not registered. * * @return The registration date of this logging object. Null if it's not registered. */ public Date getRegistrationDate(); /** * Gets the boolean value of whether or not this object is gathering kettle metrics during execution. * * @return true if this logging object is gathering kettle metrics during execution */ public boolean isGatheringMetrics(); /** * Enable of disable kettle metrics gathering during execution * * @param gatheringMetrics * set to true to enable metrics gathering during execution. */ public void setGatheringMetrics( boolean gatheringMetrics ); /** * This option will force the create of a separate logging channel even if the logging concerns identical objects with * identical names. * * @param forcingSeparateLogging * Set to true to force separate logging */ public void setForcingSeparateLogging( boolean forcingSeparateLogging ); /** * @return True if the logging is forcibly separated out from even identical objects. */ public boolean isForcingSeparateLogging(); }