All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.sshd.common.scp.ScpTimestamp Maven / Gradle / Ivy

There is a newer version: 2.14.0
Show newest version
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you 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.apache.sshd.common.scp;

import java.util.Date;
import java.util.concurrent.TimeUnit;

import org.apache.sshd.common.util.GenericUtils;

/**
 * Represents an SCP timestamp definition
 * 
 * @author Apache MINA SSHD Project
 */
public class ScpTimestamp {
    private final long lastModifiedTime;
    private final long lastAccessTime;

    public ScpTimestamp(long modTime, long accTime) {
        lastModifiedTime = modTime;
        lastAccessTime = accTime;
    }

    public long getLastModifiedTime() {
        return lastModifiedTime;
    }

    public long getLastAccessTime() {
        return lastAccessTime;
    }

    @Override
    public String toString() {
        return "modified=" + new Date(lastModifiedTime)
               + ";accessed=" + new Date(lastAccessTime);
    }

    /**
     * @param  line                  The time specification - format:
     *                               {@code T   } where specified
     *                               times are in seconds since UTC
     * @return                       The {@link ScpTimestamp} value with the timestamps converted to milliseconds
     * @throws NumberFormatException if bad numerical values - Note: does not check if 1st character is 'T'.
     * @see                          How the
     *                               SCP protocol works
     */
    public static ScpTimestamp parseTime(String line) throws NumberFormatException {
        String[] numbers = GenericUtils.split(line.substring(1), ' ');
        return new ScpTimestamp(
                TimeUnit.SECONDS.toMillis(Long.parseLong(numbers[0])),
                TimeUnit.SECONDS.toMillis(Long.parseLong(numbers[2])));
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy