class ClientRange implements ClientExpression<ClientRange> {

    @Override
    public String toString() {
        String startString;
        String endString;
        if (getStart() != null && getStart().getBoundary() != null) {
            startString = getStart().getBoundary().toString();
        } else {
            startString = ClientExpressions.MISSING_REPRESENTATION;
        }
        if (getEnd() != null && getEnd().getBoundary() != null) {
            endString = getEnd().getBoundary().toString();
        } else {
            endString = ClientExpressions.MISSING_REPRESENTATION;
        }
        return "(" + startString + ":" + endString + ")";
    }

    public  ClientRange();
    public  ClientRange(ClientRangeBoundary start, ClientRangeBoundary end);
    public  ClientRange(ClientLiteral start, ClientLiteral end);
    public  ClientRange(ClientExpression start, ClientExpression end);
    public  ClientRange(ClientRange range);

}