001    /**
002     * Licensed to the Apache Software Foundation (ASF) under one or more
003     * contributor license agreements.  See the NOTICE file distributed with
004     * this work for additional information regarding copyright ownership.
005     * The ASF licenses this file to You under the Apache License, Version 2.0
006     * (the "License"); you may not use this file except in compliance with
007     * the License.  You may obtain a copy of the License at
008     *
009     *      http://www.apache.org/licenses/LICENSE-2.0
010     *
011     * Unless required by applicable law or agreed to in writing, software
012     * distributed under the License is distributed on an "AS IS" BASIS,
013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     * See the License for the specific language governing permissions and
015     * limitations under the License.
016     */
017    package org.apache.activemq.broker.scheduler;
018    
019    import java.text.DateFormat;
020    import java.text.SimpleDateFormat;
021    import java.util.Date;
022    import org.apache.kahadb.util.ByteSequence;
023    
024    
025    public class JobImpl implements Job {
026        private final JobLocation jobLocation;
027        private final byte[] payload;
028        
029        protected JobImpl(JobLocation location,ByteSequence bs) {
030            this.jobLocation=location;
031            this.payload = new byte[bs.getLength()];
032            System.arraycopy(bs.getData(), bs.getOffset(), this.payload, 0, bs.getLength());
033        }
034    
035        public String getJobId() {
036            return this.jobLocation.getJobId();
037        }
038    
039        public byte[] getPayload() {
040           return this.payload;
041        }
042    
043        public long getPeriod() {
044           return this.jobLocation.getPeriod();
045        }
046    
047        public int getRepeat() {
048           return this.jobLocation.getRepeat();
049        }
050    
051        public long getStart() {
052           return this.jobLocation.getStartTime();
053        }
054        
055        public long getDelay() {
056            return this.jobLocation.getDelay();
057        }
058    
059        public String getCronEntry() {
060            return this.jobLocation.getCronEntry();
061        }
062        
063        
064    
065        public String getNextExecutionTime() {
066            return JobImpl.getDateTime(this.jobLocation.getNextTime());
067        }
068    
069        public String getStartTime() {
070            return JobImpl.getDateTime(getStart());
071        }
072        
073       public static long getDataTime(String value) throws Exception {
074            DateFormat dfm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
075         
076            Date date = dfm.parse(value);
077            return date.getTime();
078        }
079        
080        public static String getDateTime(long value) {
081            DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
082            Date date = new Date(value);
083            return dateFormat.format(date);
084        }
085    
086        
087        
088    
089    }