/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.monitoring.system.internal;
/**
* Wrapper class to simplify PTQL query building.
*
* @author David Scholz
*/
public final class PTQLWrapper {
private PTQLWrapper() {}
/**
*
* Factory method for query implementation.
*
* @return PTQL query.
*/
public static Query createQuery() {
return new Query() {
@Override
public String createQueryString(Attribute attribute, Operator operator) {
return attribute.getAttribute() + operator.getOperator();
}
};
}
/**
* PTQL query.
*
* @author David Scholz
*/
public interface Query {
/**
* Creates a query as a string.
*
* @param attribute The PTQL attribute.
* @param operator The PTQL operator.
* @return PTQL query as string.
*/
String createQueryString(Attribute attribute, Operator operator);
}
/**
* PTQL operator.
*
* @author David Scholz
*/
private interface Operator {
String getOperator();
}
/**
*
* PTQL attribute.
*
* @author David Scholz.
*/
private interface Attribute {
String getAttribute();
}
/**
* Get PTQL query for getting the equal operator.
*
* @return PTQL equal query.
*/
public static Operator eq() {
return new Operator() {
@Override
public String getOperator() {
return "eq=";
}
};
}
/**
* Get PTQL query for getting the not equal operator.
*
* @return PTQL not equal query.
*/
public static Operator ne() {
return new Operator() {
@Override
public String getOperator() {
return "ne=";
}
};
}
/**
* Get PTQL query for getting for getting the ends with operator.
*
* @return PTQL ends with query.
*/
public static Operator ew() {
return new Operator() {
@Override
public String getOperator() {
return "ew=";
}
};
}
/**
* Get PTQL query for getting the starts with operator.
*
* @return PTQL starts with query.
*/
public static Operator sw() {
return new Operator() {
@Override
public String getOperator() {
return "sw=";
}
};
}
/**
* Get PTQL query for getting the contains value (substring) operator.
*
* @return PTQL contains value query.
*/
public static Operator ct() {
return new Operator() {
@Override
public String getOperator() {
return "ct=";
}
};
}
/**
* Get PTQL query for getting the regular expression value operator.
*
* @return PTQL regular expression value matches querry.
*/
public static Operator re() {
return new Operator() {
@Override
public String getOperator() {
return "re=";
}
};
}
/**
* Get PTQL query for getting the process id attribute.
*
* @return PTQL attribute for getting pid.
*/
public static Attribute pid() {
return new Attribute() {
@Override
public String getAttribute() {
return "Pid.Pid.";
}
};
}
/**
* Get PTQL query for getting the file containing the pid attribute.
*
* @return PTQL attribute for getting the file containing the pid.
*/
public static Attribute file() {
return new Attribute() {
@Override
public String getAttribute() {
return "Pid.PidFile.";
}
};
}
/**
* Get PTQL query for getting the windows service name used to pid from the service manager attribute.
*
* @return PTQL attribute for getting the windows service name.
*/
public static Attribute serviceName() {
return new Attribute() {
@Override
public String getAttribute() {
return "Pid.Service.";
}
};
}
/**
* Get PTQL query for getting the base name of the process executable attribute.
*
* @return PTQL attribute for getting the state name.
*/
public static Attribute stateName() {
return new Attribute() {
@Override
public String getAttribute() {
return "State.Name.";
}
};
}
/**
*
* Get PTQL query for getting ppid of given process.
*
* @return PTQL attribute for getting ppid.
*/
public static Attribute statePPID() {
return new Attribute() {
@Override
public String getAttribute() {
return "State.Ppid.";
}
};
}
/**
* Get PTQL query for getting the user name of the process owner attribute.
*
* @return PTQL attribute for getting the name of the process owner.
*/
public static Attribute credUserName() {
return new Attribute() {
@Override
public String getAttribute() {
return "CredName.User.";
}
};
}
/**
* Get PTQL query for getting the group name of the process owner attribute.
*
* @return PTQL attribute for getting the group name of the process owner.
*/
public static Attribute credGroupName() {
return new Attribute() {
@Override
public String getAttribute() {
return "CredName.Group.";
}
};
}
/**
* Get PTQL query for getting the user id of the process owner attribute.
*
* @return PTQL attribute for getting the UID of the process owner.
*/
public static Attribute credUID() {
return new Attribute() {
@Override
public String getAttribute() {
return "Cred.Uid.";
}
};
}
/**
* Get PTQL query for getting the group id of the process owner attribute.
*
* @return PTQL attribute for getting the GID of the process owner.
*/
public static Attribute credGID() {
return new Attribute() {
@Override
public String getAttribute() {
return "Cred.Gid.";
}
};
}
/**
* Get PTQL query for getting the effective user id of the process owner attribute.
*
* @return PTQL attribute for getting the effective UID of the process owner.
*/
public static Attribute credEUID() {
return new Attribute() {
@Override
public String getAttribute() {
return "Cred.Euid.";
}
};
}
/**
* Get PTQL query for getting the effective group id of the process owner attribute.
*
* @return PTQL attribute for getting the effective GID of the process owner.
*/
public static Attribute credEGID() {
return new Attribute() {
@Override
public String getAttribute() {
return "Cred.Egid.";
}
};
}
/**
* Get PTQL query for getting the full path name of the process executable.
*
* @return PTQL attribute for getting the full path name of the process exe.
*/
public static Attribute exeName() {
return new Attribute() {
@Override
public String getAttribute() {
return "Exe.Name.";
}
};
}
/**
* Get PTQL query for getting the current working directory of the process.
*
* @return PTQL attribute for getting the current working directory of the process.
*/
public static Attribute cwd() {
return new Attribute() {
@Override
public String getAttribute() {
return "Exe.Cwd.";
}
};
}
}