blob: 8f5d23472355b53695697a709ee76ded7862507d [file] [log] [blame]
/*
* 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.ignite.internal.igfs.common;
import java.util.Map;
import org.apache.ignite.igfs.IgfsPath;
import org.apache.ignite.internal.processors.igfs.IgfsUtils;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.jetbrains.annotations.Nullable;
/**
* Single path command message. This is a plain bean.
*/
public class IgfsPathControlRequest extends IgfsMessage {
/** Main path. */
private IgfsPath path;
/** Second path, rename command. */
private IgfsPath destPath;
/** Boolean flag, meaning depends on command. */
private boolean flag;
/** Boolean flag which controls whether file will be colocated on single node. */
private boolean colocate;
/** Properties. */
private Map<String, String> props;
/** Sequential reads before prefetch. */
private int seqReadsBeforePrefetch;
/** Start pos for affinity command. */
private long start;
/** Length for affinity code. */
private long len;
/** Hadoop replication factor. */
private int replication;
/** Hadoop block size. */
private long blockSize;
/** Last access time. */
private long accessTime;
/** Last modification time. */
private long modificationTime;
/** The user name this control request is made on behalf of. */
private String userName;
/**
* @param path Path.
*/
public void path(IgfsPath path) {
this.path = path;
}
/**
* @param destPath Destination path (rename only).
*/
public void destinationPath(IgfsPath destPath) {
this.destPath = destPath;
}
/**
* @param flag Flag value. Meaning depends on command.
*/
public void flag(boolean flag) {
this.flag = flag;
}
/**
* @param colocate Colocate control flag value.
*/
public void colocate(boolean colocate) {
this.colocate = colocate;
}
/**
* @param replication Hadoop replication factor.
*/
public void replication(int replication) {
this.replication = replication;
}
/**
* @param blockSize Hadoop block size.
*/
public void blockSize(long blockSize) {
this.blockSize = blockSize;
}
/**
* @param props Properties map.
*/
public void properties(@Nullable Map<String, String> props) {
this.props = props;
}
/**
* @param seqReadsBeforePrefetch Sequential reads before prefetch.
*/
public void sequentialReadsBeforePrefetch(int seqReadsBeforePrefetch) {
this.seqReadsBeforePrefetch = seqReadsBeforePrefetch;
}
/**
* @param start Start position (affinity command only).
*/
public void start(long start) {
this.start = start;
}
/**
* @param len Length (affinity command only).
*/
public void length(long len) {
this.len = len;
}
/**
* @param accessTime Last access time.
*/
public void accessTime(long accessTime) {
this.accessTime = accessTime;
}
/**
* @param modificationTime Last modification time.
*/
public void modificationTime(long modificationTime) {
this.modificationTime = modificationTime;
}
/**
* @return Path.
*/
public IgfsPath path() {
return path;
}
/**
* @return Destination path (rename only).
*/
public IgfsPath destinationPath() {
return destPath;
}
/**
* @return Flag value (meaning depends on command).
*/
public boolean flag() {
return flag;
}
/**
* @return Colocate control flag value.
*/
public boolean colocate() {
return colocate;
}
/**
* @return Hadoop replication factor.
*/
public int replication() {
return replication;
}
/**
* @return Hadoop block size.
*/
public long blockSize() {
return blockSize;
}
/**
* @return Properties.
*/
public Map<String, String> properties() {
return props;
}
/**
* @return Sequential reads before prefetch.
*/
public int sequentialReadsBeforePrefetch() {
return seqReadsBeforePrefetch;
}
/**
* @return Start position (affinity command only).
*/
public long start() {
return start;
}
/**
* @return Length (affinity command only).
*/
public long length() {
return len;
}
/**
* @return Last access time.
*/
public long accessTime() {
return accessTime;
}
/**
* @return Last modification time.
*/
public long modificationTime() {
return modificationTime;
}
/** {@inheritDoc} */
@Override public String toString() {
return S.toString(IgfsPathControlRequest.class, this, "cmd", command());
}
/**
* Getter for the user name.
* @return user name.
*/
public final String userName() {
assert userName != null;
return userName;
}
/**
* Setter for the user name.
* @param userName the user name.
*/
public final void userName(String userName) {
this.userName = IgfsUtils.fixUserName(userName);
}
}