public static void validateProgramOnComputer(final GraphComputer computer, final VertexProgram vertexProgram) { if (vertexProgram.getMemoryComputeKeys().contains(null)) throw Memory.Exceptions.memoryKeyCanNotBeNull(); if (vertexProgram.getMemoryComputeKeys().contains("")) throw Memory.Exceptions.memoryKeyCanNotBeEmpty(); final GraphComputer.Features graphComputerFeatures = computer.features(); final VertexProgram.Features vertexProgramFeatures = vertexProgram.getFeatures(); for (final Method method : VertexProgram.Features.class.getMethods()) { if (method.getName().startsWith("requires")) { final boolean supports; final boolean requires; try { supports = (boolean) GraphComputer.Features.class.getMethod(method.getName().replace("requires", "supports")).invoke(graphComputerFeatures); requires = (boolean) method.invoke(vertexProgramFeatures); } catch (final Exception e) { throw new IllegalStateException("A reflection exception has occurred: " + e.getMessage(), e); } if (requires && !supports) throw new IllegalStateException("The vertex program can not be executed on the graph computer: " + method.getName()); } } }
public static void validateKey(final String key) throws IllegalArgumentException { if (null == key) throw Memory.Exceptions.memoryKeyCanNotBeNull(); if (key.isEmpty()) throw Memory.Exceptions.memoryKeyCanNotBeEmpty(); } }
public static void validateProgramOnComputer(final GraphComputer computer, final VertexProgram vertexProgram) { if (vertexProgram.getMemoryComputeKeys().contains(null)) throw Memory.Exceptions.memoryKeyCanNotBeNull(); if (vertexProgram.getMemoryComputeKeys().contains("")) throw Memory.Exceptions.memoryKeyCanNotBeEmpty(); final GraphComputer.Features graphComputerFeatures = computer.features(); final VertexProgram.Features vertexProgramFeatures = vertexProgram.getFeatures(); for (final Method method : VertexProgram.Features.class.getMethods()) { if (method.getName().startsWith("requires")) { final boolean supports; final boolean requires; try { supports = (boolean) GraphComputer.Features.class.getMethod(method.getName().replace("requires", "supports")).invoke(graphComputerFeatures); requires = (boolean) method.invoke(vertexProgramFeatures); } catch (final Exception e) { throw new IllegalStateException("A reflection exception has occurred: " + e.getMessage(), e); } if (requires && !supports) throw new IllegalStateException("The vertex program can not be executed on the graph computer: " + method.getName()); } } }
public static void validateKey(final String key) throws IllegalArgumentException { if (null == key) throw Memory.Exceptions.memoryKeyCanNotBeNull(); if (key.isEmpty()) throw Memory.Exceptions.memoryKeyCanNotBeEmpty(); } }