001/* 002 * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 003 * 004 * Project and contact information: http://www.cascading.org/ 005 * 006 * This file is part of the Cascading project. 007 * 008 * Licensed under the Apache License, Version 2.0 (the "License"); 009 * you may not use this file except in compliance with the License. 010 * You may obtain a copy of the License at 011 * 012 * http://www.apache.org/licenses/LICENSE-2.0 013 * 014 * Unless required by applicable law or agreed to in writing, software 015 * distributed under the License is distributed on an "AS IS" BASIS, 016 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 017 * See the License for the specific language governing permissions and 018 * limitations under the License. 019 */ 020 021package cascading.management.state; 022 023import cascading.cascade.Cascade; 024import cascading.flow.Flow; 025import cascading.flow.FlowNode; 026import cascading.flow.FlowStep; 027import cascading.stats.CascadingStats; 028 029/** 030 * 031 */ 032public abstract class ClientState extends BaseState 033 { 034 public static final String STATE_SERVICE_CLASS_PROPERTY = "cascading3.management.state.service.classname"; 035 036 public static ClientState NULL = new ClientState() 037 { 038 @Override 039 public void start( long time ) 040 { 041 } 042 043 @Override 044 public void run( long time ) 045 { 046 } 047 048 @Override 049 public void stop( long time ) 050 { 051 } 052 053 @Override 054 String[] getContext( String group, String metric ) 055 { 056 return new String[ 0 ]; 057 } 058 059 @Override 060 public void recordStats( CascadingStats stats ) 061 { 062 } 063 064 @Override 065 public void recordFlowNode( FlowNode flowNode ) 066 { 067 } 068 069 @Override 070 public void recordFlowStep( FlowStep flowStep ) 071 { 072 } 073 074 @Override 075 public void recordFlow( Flow flow ) 076 { 077 } 078 079 @Override 080 public void recordCascade( Cascade cascade ) 081 { 082 } 083 }; 084 085 public ClientState() 086 { 087 } 088 089 @Override 090 String[] getContext( String group, String metric ) 091 { 092 return asArray( group, metric ); 093 } 094 095 public void setStatus( Enum status, long time ) 096 { 097 setMetric( status, time ); 098 } 099 100 public abstract void recordStats( CascadingStats stats ); 101 102 public abstract void recordFlowNode( FlowNode flowNode ); 103 104 public abstract void recordFlowStep( FlowStep flowStep ); 105 106 public abstract void recordFlow( Flow flow ); 107 108 public abstract void recordCascade( Cascade cascade ); 109 110 public void record( String id, Object object ) 111 { 112 store( id, object ); 113 } 114 115 public void start( long time ) 116 { 117 setMetric( "state", "start", time ); 118 } 119 120 public void submit( long time ) 121 { 122 setMetric( "state", "submit", time ); 123 } 124 125 public void run( long time ) 126 { 127 setMetric( "state", "run", time ); 128 } 129 130 public void stop( long time ) 131 { 132 setMetric( "state", "stop", time ); 133 } 134 }