@Override
    public boolean cp(final String sourceLocation, final String targetLocation) {
        final Pattern replacementPattern;
        final List<String> rdds = new ArrayList<>();

        forEachMatching( sourceLocation, rdd -> rdds.add(rdd.name()));

        if (rdds.size() == 0)
            return false;

        replacementPattern = toRegularExpression( sourceLocation );
        for (final String rddName : rdds) {
            final String newLocation;

            newLocation = replacementPattern.matcher( rddName ).replaceFirst( targetLocation );

            Spark.getRDD(rddName).toJavaRDD().filter(a -> true)  // a clone of the source RDD
                 .setName(newLocation)
                 .cache()
                 .count();
        }
        return true;
    }
@param pattern
@return true if the pattern is actually a path as of the path definition in {@linkplain Storage}

NOTE: a more precise syntax check is possible
spark-gremlin/src/main/java/org/apache/tinkerpop/gremlin/spark/structure/io/SparkContextStorage.java