Example #1
0
  public void storeMeemDefinition(MeemPath meemPath, MeemDefinition meemDefinition) {
    if (DEBUG) {
      logger.info("storing meem def: " + meemPath);
    }

    // only store meemstore paths
    if (meemPath.getSpace().equals(Space.MEEMSTORE)) {
      int meemVersion = meemDefinition.getMeemAttribute().getVersion();
      if (meemVersion > definitionStore.getVersion(meemPath)) {
        definitionStore.store(meemPath, meemDefinition);

        synchronized (meemPaths) {
          if (!meemPaths.containsKey(meemPath.getLocation())) {
            meemPaths.put(meemPath.getLocation(), meemPath);
            meemStoreClient.meemStored(meemPath);
          }
          meemDefinitionClient.meemDefinitionChanged(meemPath, meemDefinition);
          meemContentClient.meemContentChanged(meemPath, null);
        }
      } else {
        // definition version number is same or smaller than the persisted one
        // LogTools.warn(logger, "Request to persist MeemDefinition with lower version number than
        // most recent version");
      }
    }
  }
Example #2
0
  public void storeMeemContent(MeemPath meemPath, MeemContent meemContent) {
    if (DEBUG) {
      logger.info("storing meem content: " + meemPath);
    }

    // only store meemstore paths
    if (meemPath.getSpace().equals(Space.MEEMSTORE)) {
      contentStore.store(meemPath, meemContent);

      String location = meemPath.getLocation();
      boolean stored = false;

      synchronized (meemPaths) {
        if (!meemPaths.containsKey(location)) {
          meemPaths.put(location, meemPath);
          stored = true;
        }

        if (stored) {
          meemStoreClient.meemStored(meemPath);
        }

        // TODO[peter] Should this be called if the meem was just stored?
        meemContentClient.meemContentChanged(meemPath, meemContent);
      }
    }
  }