예제 #1
0
 public static Map<String, String> getHeaders() {
   HashMap<String, String> headers = new HashMap<>();
   headers.put("Content-Type", "application/json");
   headers.put("Accept", "application/json");
   if (UserManager.getInstance().getAuthToken() != null) {
     headers.put("Authorization", "Token " + UserManager.getInstance().getAuthToken());
   }
   return headers;
 }
예제 #2
0
  /**
   * 添加路线
   *
   * @param route 路线
   * @param listener 回调
   */
  public void addRoute(final Route route, final OnRouteListener listener) {
    BmobQuery<Route> query1 = new BmobQuery<>();
    query1.addWhereEqualTo("name", route.getName());
    BmobQuery<Route> query2 = new BmobQuery<>();
    query2.addWhereEqualTo("creator", UserManager.getInstance(mContext).getUser());
    List<BmobQuery<Route>> andQuerys = new ArrayList<>();
    andQuerys.add(query1);
    andQuerys.add(query2);

    BmobQuery<Route> mainQuery = new BmobQuery<>();
    mainQuery.and(andQuerys);
    mainQuery.findObjects(
        mContext,
        new FindListener<Route>() {
          @Override
          public void onSuccess(List<Route> list) {
            if (list.size() > 0) {
              listener.onError(null);
            } else {
              saveRoute(route, listener);
            }
          }

          @Override
          public void onError(int i, String s) {
            listener.onError(null);
          }
        });
  }
예제 #3
0
 /** @see org.olat.core.id.User#setProperty(java.lang.String, java.lang.String) */
 @Override
 public void setProperty(final String propertyName, final String propertyValue) {
   final UserManager um = UserManager.getInstance();
   final UserPropertyHandler propertyHandler =
       um.getUserPropertiesConfig().getPropertyHandler(propertyName);
   propertyHandler.setUserProperty(this, propertyValue);
 }
예제 #4
0
 public String getMetricAdvice(int sessionId) {
   String metric = "";
   logger.info("" + sessionId);
   LimesUser lu = UserManager.getInstance().getUser(sessionId);
   System.out.println(lu);
   KBInfo sourceInfo = createKBInfo(lu.getSourceMap());
   KBInfo targetInfo = createKBInfo(lu.getTargetMap());
   if (sourceInfo.prefixes == null) sourceInfo.prefixes = new HashMap<String, String>();
   if (targetInfo.prefixes == null) targetInfo.prefixes = new HashMap<String, String>();
   //		sourceInfo.prefixes.put("rdf", PrefixHelper.getURI("rdf"));
   //		sourceInfo.prefixes.put("dbp", PrefixHelper.getURI("dbp"));
   //		sourceInfo.prefixes.put("rdfs", PrefixHelper.getURI("rdfs"));
   //		targetInfo.prefixes.put("rdf", PrefixHelper.getURI("rdf"));
   //		targetInfo.prefixes.put("dbp", PrefixHelper.getURI("dbp"));
   //		targetInfo.prefixes.put("rdfs", PrefixHelper.getURI("rdfs"));
   logger.info("getMetricAdvice(): Getting caches...");
   HybridCache sC = HybridCache.getData(sourceInfo);
   HybridCache tC = HybridCache.getData(targetInfo);
   logger.info("getMetricAdvice(): Start SelfConfig...");
   MeshBasedSelfConfigurator mbsc = new MeshBasedSelfConfigurator(sC, tC, 0.6, 0.5);
   List<SimpleClassifier> classifierList = mbsc.getBestInitialClassifiers();
   if (classifierList.size() > 0) {
     classifierList = mbsc.learnClassifer(classifierList);
   }
   ComplexClassifier compC = mbsc.getZoomedHillTop(5, 5, classifierList);
   metric = this.generateMetric(compC.classifiers, "", sourceInfo, targetInfo);
   lu.setNoUsageTime(0);
   logger.info("getMetricAdvice(): metric=\n" + metric);
   return metric;
 }
예제 #5
0
  /**
   * 保存路线
   *
   * @param route 路线
   * @param listener 回调
   */
  private void saveRoute(final Route route, final OnRouteListener listener) {
    route.setCreator(UserManager.getInstance(mContext).getUser());
    route.save(
        mContext,
        new SaveListener() {
          @Override
          public void onSuccess() {
            UserManager.getInstance(mContext)
                .addRoute(
                    new UserManager.OnUpdateListener() {
                      @Override
                      public void onSuccess() {
                        listener.onSuccess(null);
                        mRoutes.add(0, route);
                      }

                      @Override
                      public void onError() {
                        listener.onError(null);
                      }
                    });
          }

          @Override
          public void onFailure(int i, String s) {
            listener.onError(s);
          }
        });
  }
예제 #6
0
  /**
   * 关注路线
   *
   * @param route 路线
   * @param listener 回调监听
   */
  public void followRoute(final Route route, final OnRouteListener listener) {
    User user = UserManager.getInstance(mContext).getUser();
    BmobQuery<Route> query = new BmobQuery<>();
    query.addWhereRelatedTo("followRoutes", new BmobPointer(user));
    query.findObjects(
        mContext,
        new FindListener<Route>() {
          @Override
          public void onSuccess(final List<Route> list) {
            int i = 0;
            for (; i < list.size(); i++) {
              if (route.getObjectId().equals(list.get(i).getObjectId())) {
                break;
              }
            }
            if (i == list.size()) {
              UserManager.getInstance(mContext)
                  .addFollowRoute(
                      route,
                      new UserManager.OnUpdateListener() {
                        @Override
                        public void onSuccess() {
                          int followNum = 0;
                          if (route.getFollowNum() != null) followNum = route.getFollowNum();
                          followNum++;
                          route.setFollowNum(followNum);
                          route.update(
                              mContext,
                              route.getObjectId(),
                              new UpdateListener() {
                                @Override
                                public void onSuccess() {
                                  listener.onSuccess(null);
                                }

                                @Override
                                public void onFailure(int i, String s) {
                                  listener.onError(s);
                                }
                              });
                        }

                        @Override
                        public void onError() {
                          listener.onError(null);
                        }
                      });
            } else {
              listener.onError("您已经关注了该路线");
            }
          }

          @Override
          public void onError(int i, String s) {}
        });
  }
예제 #7
0
 /** @see org.olat.core.id.User#getProperty(java.lang.String, java.util.Locale) */
 @Override
 public String getProperty(final String propertyName, final Locale locale) {
   final UserManager um = UserManager.getInstance();
   final UserPropertyHandler propertyHandler =
       um.getUserPropertiesConfig().getPropertyHandler(propertyName);
   if (propertyHandler == null) {
     return null;
   }
   return propertyHandler.getUserProperty(this, locale);
 }
예제 #8
0
 public void setMetricSpec(int sessionId, String metricMap) {
   try {
     HashMap<String, Object> metricJMap = JsonParser.parseJSONToJava(metricMap);
     LimesUser lu = UserManager.getInstance().getUser(sessionId);
     log.info(metricMap);
     lu.setMetricMap(metricJMap);
     lu.setNoUsageTime(0);
   } catch (ParseException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
   }
 }
예제 #9
0
  public void getMapping(int mailAddress) {

    LimesUser le = UserManager.getInstance().getUser(mailAddress);
    le.addPropertyChangeListener(UserManager.getInstance());

    HashMap<String, Object> source;

    source = le.getSourceMap();

    HashMap<String, Object> target = le.getTargetMap();
    HashMap<String, Object> metric = le.getMetricMap();

    KBInfo sourceInfo = createKBInfo(source);
    KBInfo targetInfo = createKBInfo(target);
    // get metric

    String metricExpr = (String) metric.get("metric");
    Double accThreshold = (Double) metric.get("accthreshold");
    Double verThreshold = (Double) metric.get("verthreshold");
    le.calculateMapping(sourceInfo, targetInfo, metricExpr, accThreshold, verThreshold);
    le.setNoUsageTime(0);
  }
예제 #10
0
 public void setSpecification(int sessionId, String source, String target) {
   try {
     HashMap<String, Object> sourceMap = JsonParser.parseJSONToJava(source);
     HashMap<String, Object> targetMap = JsonParser.parseJSONToJava(target);
     LimesUser lu = UserManager.getInstance().getUser(sessionId);
     lu.setSourceMap(sourceMap);
     lu.setTargetMap(targetMap);
     lu.setNoUsageTime(0);
   } catch (ParseException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
   }
 }
예제 #11
0
  public void authenticate(String username, String password) throws UnauthorizedException {
    if (username.contains("@")) {
      // Check that the specified domain matches the server's domain
      int index = username.indexOf("@");
      String domain = username.substring(index + 1);
      if (domain.equals(XMPPServer.getInstance().getServerInfo().getXMPPDomain())) {
        username = username.substring(0, index);
      } else {
        // Unknown domain. Return authentication failed.
        throw new UnauthorizedException();
      }
    }
    try {
      // Some native authentication mechanisms appear to not handle high load
      // very well. Therefore, synchronize access to Shaj to throttle auth checks.
      synchronized (this) {
        if (!Shaj.checkPassword(domain, username, password)) {
          throw new UnauthorizedException();
        }
      }
    } catch (UnauthorizedException ue) {
      throw ue;
    } catch (Exception e) {
      throw new UnauthorizedException(e);
    }

    // See if the user exists in the database. If not, automatically create them.
    UserManager userManager = UserManager.getInstance();
    try {
      userManager.getUser(username);
    } catch (UserNotFoundException unfe) {
      try {
        Log.debug("Automatically creating new user account for " + username);
        // Create user; use a random password for better safety in the future.
        // Note that we have to go to the user provider directly -- because the
        // provider is read-only, UserManager will usually deny access to createUser.
        UserProvider provider = UserManager.getUserProvider();
        if (!(provider instanceof NativeUserProvider)) {
          Log.error(
              "Error: not using NativeUserProvider so authentication with "
                  + "NativeAuthProvider will likely fail. Using: "
                  + provider.getClass().getName());
        }
        UserManager.getUserProvider().createUser(username, StringUtils.randomString(8), null, null);
      } catch (UserAlreadyExistsException uaee) {
        // Ignore.
      }
    }
  }
예제 #12
0
 /**
  * Returns the next available element, or null if there are no more elements to return.
  *
  * @return the next available element.
  */
 private Object getNextElement() {
   while (currentIndex + 1 < elements.length) {
     currentIndex++;
     Object element = null;
     try {
       element = UserManager.getInstance().getUser(elements[currentIndex]);
     } catch (UserNotFoundException unfe) {
       // Ignore.
     }
     if (element != null) {
       return element;
     }
   }
   return null;
 }
예제 #13
0
 public int startSession(String emailAddress) {
   String con = emailAddress + System.currentTimeMillis();
   int id = con.hashCode();
   LimesUser lu = new LimesUser(id, emailAddress);
   UserManager.getInstance().addUser(id, lu);
   log.info("new Client with id" + id);
   String msg = "Your session id is " + id + ".\n" + "The session will delete after 2 days";
   try {
     postMail(emailAddress, "session id", msg);
   } catch (MessagingException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
   }
   return id;
 }
예제 #14
0
  /**
   * 复制路线
   *
   * @param route 路线
   * @param listener 回调
   */
  public void copyRoute(final Route route, final OnRouteListener listener) {
    final Route myRoute = new Route();
    myRoute.setCreator(UserManager.getInstance(mContext).getUser());
    myRoute.setName(route.getName());
    myRoute.setDescription(route.getDescription());
    myRoute.setStatus(Route.PLANNING);
    myRoute.setDays(route.getDays());
    myRoute.save(
        mContext,
        new SaveListener() {
          @Override
          public void onSuccess() {
            UserManager.getInstance(mContext)
                .addRoute(
                    new UserManager.OnUpdateListener() {
                      @Override
                      public void onSuccess() {}

                      @Override
                      public void onError() {}
                    });
            BmobQuery<Daily> query = new BmobQuery<>();
            query.addWhereEqualTo("route", new BmobPointer(route));
            query.order("day");
            query.findObjects(
                mContext,
                new FindListener<Daily>() {
                  @Override
                  public void onSuccess(List<Daily> list) {
                    copyDaily(myRoute, list, listener);
                  }

                  @Override
                  public void onError(int i, String s) {
                    listener.onError(s);
                  }
                });
          }

          @Override
          public void onFailure(int i, String s) {
            listener.onError(s);
          }
        });
  }
예제 #15
0
  /**
   * 路线收藏
   *
   * @param route 路线
   * @param listener 回调
   */
  public void collect(final Route route, final OnRouteListener listener) {
    User user = UserManager.getInstance(mContext).getUser();
    BmobQuery<Route> query = new BmobQuery<>();
    query.addWhereRelatedTo("collectRoutes", new BmobPointer(user));
    query.findObjects(
        mContext,
        new FindListener<Route>() {
          @Override
          public void onSuccess(final List<Route> list) {
            int i = 0;
            for (; i < list.size(); i++) {
              if (route.getObjectId().equals(list.get(i).getObjectId())) {
                break;
              }
            }
            if (i == list.size()) {
              UserManager.getInstance(mContext)
                  .addCollectRoute(
                      route,
                      new UserManager.OnUpdateListener() {
                        @Override
                        public void onSuccess() {
                          listener.onSuccess(null);
                        }

                        @Override
                        public void onError() {
                          listener.onError(null);
                        }
                      });
            } else {
              listener.onError("您已经收藏了该路线");
            }
          }

          @Override
          public void onError(int i, String s) {}
        });
  }
예제 #16
0
 /**
  * Returns the users username, lastname, firstname and database key.
  *
  * @return String user info
  */
 @Override
 public String toString() {
   final UserManager um = UserManager.getInstance();
   if (um != null) { // can be null during startup, may inject via spring
     final String quickinfo =
         "UserImpl("
             + getKey()
             + ")["
             + um.getUserPropertiesConfig()
                 .getPropertyHandler(UserConstants.LASTNAME)
                 .getUserProperty(this, null)
             + " "
             + um.getUserPropertiesConfig()
                 .getPropertyHandler(UserConstants.FIRSTNAME)
                 .getUserProperty(this, null)
             + ","
             + um.getUserPropertiesConfig()
                 .getPropertyHandler(UserConstants.EMAIL)
                 .getUserProperty(this, null)
             + "]";
     return quickinfo + "," + super.toString();
   }
   return super.toString();
 }
예제 #17
0
 public void requestAddUser(String accountName) {
   UserManager.getInstance().addUser(this, accountName);
 }
예제 #18
0
 private String _createUndefinedName() {
   UserManager u = UserManager.getInstance();
   String name = "undefined" + u.getUserNum();
   return name;
 }
예제 #19
0
 public String fetchMetricMap(int sessionId) {
   LimesUser lu = UserManager.getInstance().getUser(sessionId);
   String result = "";
   return JsonParser.parseJavaToJSON(lu.getMetricMap());
 }
예제 #20
0
 public int continueSession(int sessionId) {
   return UserManager.getInstance().containUser(sessionId);
 }
예제 #21
0
 public String fetchTargetData(int sessionId) {
   LimesUser lu = UserManager.getInstance().getUser(sessionId);
   return JsonParser.parseJavaToJSON(lu.getTargetMap());
 }