MINI MINI MANI MO

Path : /opt/oracle/product/18c/dbhomeXE/md/property_graph/pyopg/pyopg/
File Upload :
Current File : //opt/oracle/product/18c/dbhomeXE/md/property_graph/pyopg/pyopg/pgx_proxies.py

"""
Python Wrappers for PGX Proxy Objects
Copyright 2015, Oracle and/or its affiliates. All rights reserved.
"""

class ProxyIterator:
    def __init__(self, jitter):
        self.jitter = jitter

    def __iter__(self):
        return self

    def next(self):
        if (self.jitter.hasNext() == 0):
            raise StopIteration
        return self.jitter.next()

class ComponentProxy():
    """
    Access class for component collections
    """
    _jcp = None
    def __init__(self, cp):
        self._jcp = cp

    def size(self):
        return self._jcp.size()

    def __len__(self):
        return self._jcp.size()

    def getPropertyName(self):
        return self._jcp.getPropertyName()

    def name(self):
        return self._jcp.name()

    def components(self):
        return ProxyIterator(self._jcp.iterator())

    def iterator(self):
        return ProxyIterator(self._jcp.iterator())

    def getComponentById(self, cid):
        return self._jcp.getComponentById(cid)

    def getComponentId(self, node):
        return self._jcp.getComponentIdForNode(node)


class PropertyProxy():
    """
    Access class for property metrics
    """
    _jpp = None

    def __init__(self, pp):
       self._jpp = pp

    def size(self):
        return self._jpp.size()

    def __len__(self):
        return self._jpp.size()

    def __getitem__(self, x):
        return self._jpp.getValueFor(x)

    def getValueFor(self, x):
        return self._jpp.getValueFor(x)

    def getTopKValues(self, k):
        return ProxyIterator(self._jpp.getTopKValues(k).iterator())

    def topK(self, k):
        return self.getTopKValues(k)

    def getBottomKValues(self, k):
        return ProxyIterator(self._jpp.getBottomKValues(k).iterator())

    def bottomK(self, k):
        return self.getBottomKValues(k)

    def getValues(self,k):
        return ProxyIterator(self._jpp.getValues().iterator())

class PathProxy(object):
    """
    Access class for path objects
    """
    _jpp = None
    def __init__(self, jpp):
        self._jpp = jpp

    def exists(self):
        return self._jpp.exists()

    def getCost(self):
        return self._jpp.getCost()

    def cost(self):
        return self.getCost()

    def getPathLength(self):
        return self._jpp.getPathLength()

    def __len__(self):
        return self.getPathLength()

    def getNodes(self):
        return self._jpp.getNodes()

    def nodes(self):
        return self.getNodes()

class AllPathsProxy(object):
    """
    Access class for containers of all paths
    """
    _japp = None
    def __init__(self, japp):
        self._japp = japp

    def getPath(self, dst):
        return PathProxy(self._japp.getPath(dst))


class CollectionProxy(object):
    """
    Access class for collections
    """
    _jcp = None

    def __init__(self, jcp):
        self._jcp = jcp

    def __len__(self):
        return self._jcp.size()

    def size(self):
        return self._jcp.size()

    def collection(self):
        return ProxyIterator(self._jcp.iterator())


class HitsProxy(object):
    """
    Access class for HITS results
    """
    _jhp = None

    def __init__(self, jhp):
        self._jhp = jhp

    def getAuthorities(self):
        return PropertyProxy(self._jhp.getAuthorities())

    def getHubs(self):
        return PropertyProxy(self._jhp.getHubs())


class ConductanceProxy(object):
    """
    Access class for conductance results
    """
    _jcp = None

    def __init__(self, jcp):
        self._jcp = jcp

    def getAverage(self):
        return self._jcp.getAverage()

    def getMinimum(self):
        return self._jcp.getMinimum()

OHA YOOOO