当前位置: 首页>>代码示例>>Java>>正文


Java Transaction.isActive方法代码示例

本文整理汇总了Java中org.hibernate.Transaction.isActive方法的典型用法代码示例。如果您正苦于以下问题:Java Transaction.isActive方法的具体用法?Java Transaction.isActive怎么用?Java Transaction.isActive使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.hibernate.Transaction的用法示例。


在下文中一共展示了Transaction.isActive方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getKeys

import org.hibernate.Transaction; //导入方法依赖的package包/类
public Collection<String> getKeys(Long piid, String prefix, Type type) {

        if( piid == null)
            throw new PersistentVarsException("Could not find keys for 'null' piid");

        Session session = null;
        Transaction transaction = null;
        Collection<String> list = null;
        
        try {
            session = sessionFactory.openSession();
            transaction = session.beginTransaction();

            list = getKeysImpl(session, piid, prefix, type);

            transaction.commit();

        } catch (HibernateException hibernateException) {
            throw new PersistentVarsException("HibernatePropertySet.getKeys: " + hibernateException.getMessage());
        } finally {
            if (transaction != null && transaction.isActive())
                 transaction.rollback();

            if (session != null)
                session.close();
        } 

        return list;
    }
 
开发者ID:will-gilbert,项目名称:OSWf-OSWorkflow-fork,代码行数:30,代码来源:HibernatePersistentVarsDAO.java

示例2: save

import org.hibernate.Transaction; //导入方法依赖的package包/类
public void save(HibernatePersistentVarsItem item) {

        if( item == null)
            throw new PersistentVarsException("Could not save 'null' PropertyItem");
 
       Session session = null;
       Transaction transaction = null;

        try {
            session = this.sessionFactory.openSession();
            transaction = session.beginTransaction();
            
            session.saveOrUpdate(item);
            session.flush();
            
            transaction.commit();
            
        } catch (HibernateException hibernateException) {
            throw new PersistentVarsException("Could not save key '" + item.getKey() + "':" + hibernateException.getMessage());
        } finally {
            
            if (transaction != null && transaction.isActive())
                 transaction.rollback();

            if (session != null)
                session.close();
        }
    }
 
开发者ID:will-gilbert,项目名称:OSWf-OSWorkflow-fork,代码行数:29,代码来源:HibernatePersistentVarsDAO.java

示例3: findByKey

import org.hibernate.Transaction; //导入方法依赖的package包/类
public HibernatePersistentVarsItem findByKey(Long piid, String key) {

        if( piid == null)
            throw new PersistentVarsException("Could not find property for 'null' piid");

        if( key == null)
            throw new PersistentVarsException("Could not find property for 'null' key");
        
        Session session = null;
        Transaction transaction = null;
        HibernatePersistentVarsItem item = null;

        try {

            session = sessionFactory.openSession();
            transaction = session.beginTransaction();

            item = getItem(session, piid, key);
            session.flush();

            transaction.commit();

        } catch (HibernateException hibernateException) {
            throw new PersistentVarsException("Could not find key '" + key + "': " + hibernateException.getMessage());
        } finally {
            if (transaction != null && transaction.isActive())
                 transaction.rollback();

            if (session != null)
                session.close();
        }

        return item;
    }
 
开发者ID:will-gilbert,项目名称:OSWf-OSWorkflow-fork,代码行数:35,代码来源:HibernatePersistentVarsDAO.java

示例4: remove

import org.hibernate.Transaction; //导入方法依赖的package包/类
public void remove(Long piid, String key) {


        if( piid == null)
            throw new PersistentVarsException("Could not remove property for 'null' piid");

        if( key == null)
            throw new PersistentVarsException("Could not remove property with 'null' key");

       Session session = null;
       Transaction transaction = null;

        try {
            session = this.sessionFactory.openSession();
            transaction = session.beginTransaction();

            session.delete(getItem(session, piid, key));
            session.flush();

            transaction.commit();
        } catch (HibernateException hibernateException) {
            throw new PersistentVarsException("Could not remove key '" + key + "': " + hibernateException.getMessage());
        } finally {
            
            if (transaction != null && transaction.isActive())
                 transaction.rollback();
            
            if (session != null) 
                session.close();
        }
    }
 
开发者ID:will-gilbert,项目名称:OSWf-OSWorkflow-fork,代码行数:32,代码来源:HibernatePersistentVarsDAO.java

示例5: findCurrentSteps

import org.hibernate.Transaction; //导入方法依赖的package包/类
public List<Step> findCurrentSteps(final long entryId) throws WorkflowStoreException {

        Session session = null;
        Transaction transaction = null;
        List<Step> steps = null;

        try {
            session = sessionFactory.openSession();
            transaction = session.beginTransaction();

            steps = loadEntry(session, entryId).getCurrentSteps();

            transaction.commit();

         } catch (HibernateException hibernateException) {
            throw new WorkflowStoreException(hibernateException);
        } finally {

            if (transaction != null && transaction.isActive())
                 transaction.rollback();

            if (session != null)
                session.close();
        }
               
        return steps;
    }
 
开发者ID:will-gilbert,项目名称:OSWf-OSWorkflow-fork,代码行数:28,代码来源:HibernateStore.java

示例6: findProcessInstance

import org.hibernate.Transaction; //导入方法依赖的package包/类
public ProcessInstance findProcessInstance(long entryId) throws WorkflowStoreException {

       Session session = null;
       Transaction transaction = null;
       ProcessInstance workflowEntry = null;
       
       try {
           session = sessionFactory.openSession();
           transaction = session.beginTransaction();

           workflowEntry = loadEntry(session, entryId);

           transaction.commit();

       } catch (HibernateException hibernateException) {
           throw new WorkflowStoreException(hibernateException);
       } finally {

           if (transaction != null && transaction.isActive())
                transaction.rollback();

           if (session != null)
               session.close();
       }
       
       return workflowEntry;
   }
 
开发者ID:will-gilbert,项目名称:OSWf-OSWorkflow-fork,代码行数:28,代码来源:HibernateStore.java

示例7: findHistorySteps

import org.hibernate.Transaction; //导入方法依赖的package包/类
public List<Step> findHistorySteps(final long entryId) throws WorkflowStoreException {

        Session session = null;
        Transaction transaction = null;
        List<Step> steps = null;

        try {
            session = sessionFactory.openSession();
            transaction = session.beginTransaction();

            steps = loadEntry(session, entryId).getHistorySteps();

            transaction.commit();

         } catch (HibernateException hibernateException) {
            throw new WorkflowStoreException(hibernateException);
        } finally {

            if (transaction != null && transaction.isActive())
                 transaction.rollback();
            
            if (session != null)
                session.close();
        }
               
        return steps;
    }
 
开发者ID:will-gilbert,项目名称:OSWf-OSWorkflow-fork,代码行数:28,代码来源:HibernateStore.java

示例8: fetchProcessDefinition

import org.hibernate.Transaction; //导入方法依赖的package包/类
@Override
protected InputStream fetchProcessDefinition(WorkflowLocation workflowLocation) throws WorkflowLoaderException {
 
    String processDefinition = null;
    Session session = null;
    Transaction transaction = null;

    if(sessionFactory == null)
        throw new WorkflowLoaderException("'sessionFactory' has not been defined for HibernateLoader");

    try {
        session = sessionFactory.openSession();
        transaction = session.beginTransaction();
        
        Criteria criteria = session.createCriteria(HibernateProcessDescription.class);
        criteria.add(Restrictions.eq("workflowName", workflowLocation.location));
        
        HibernateProcessDescription hpd = (HibernateProcessDescription)criteria.uniqueResult();
        
        if(hpd != null)
            processDefinition = hpd.getContent();

        transaction.commit();

    } catch(HibernateException hibernateException) {
        throw new WorkflowLoaderException(hibernateException);
    } finally {

        if (transaction != null && transaction.isActive())
             transaction.rollback();

        if (session != null) 
            session.close();
    }
    
    if(processDefinition == null)
        throw new WorkflowLoaderException("Process definition '" + workflowLocation.location + "' not found");
    
    return new ByteArrayInputStream(processDefinition.getBytes());
}
 
开发者ID:will-gilbert,项目名称:OSWf-OSWorkflow-fork,代码行数:41,代码来源:HibernateLoader.java

示例9: isTransactionInProgress

import org.hibernate.Transaction; //导入方法依赖的package包/类
@Override
public boolean isTransactionInProgress(
		JDBCContext jdbcContext, Context transactionContext, Transaction transaction) {

	return (transaction != null && transaction.isActive()) ||
			TransactionSynchronizationManager.isActualTransactionActive();
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:8,代码来源:SpringTransactionFactory.java

示例10: deleteSessionById

import org.hibernate.Transaction; //导入方法依赖的package包/类
/**
 * @param id
 * @throws HibernateException
 */
public static void deleteSessionById(Long id) throws HibernateException {
	org.hibernate.Session hibSession = new SessionDAO().getSession();
	Transaction tx = null;
	try {
	    tx = hibSession.beginTransaction();
	    for (Iterator i=hibSession.createQuery("from Location where session.uniqueId = :sessionId").setLong("sessionId", id).iterate();i.hasNext();) {
               Location loc = (Location)i.next();
               loc.getFeatures().clear();
               loc.getRoomGroups().clear();
               hibSession.update(loc);
           }
	    /*
           for (Iterator i=hibSession.createQuery("from Exam where session.uniqueId=:sessionId").setLong("sessionId", id).iterate();i.hasNext();) {
               Exam x = (Exam)i.next();
               for (Iterator j=x.getConflicts().iterator();j.hasNext();) {
                   ExamConflict conf = (ExamConflict)j.next();
                   hibSession.delete(conf);
                   j.remove();
               }
               hibSession.update(x);
           }
           */
           hibSession.flush();
           hibSession.createQuery(
                    "delete DistributionPref p where p.owner in (select s from Session s where s.uniqueId=:sessionId)").
                    setLong("sessionId", id).
                    executeUpdate();
	    hibSession.createQuery(
               "delete InstructionalOffering o where o.session.uniqueId=:sessionId").
               setLong("sessionId", id).
               executeUpdate();
           hibSession.createQuery(
               "delete Department d where d.session.uniqueId=:sessionId").
               setLong("sessionId", id).
               executeUpdate();
	    hibSession.createQuery(
	            "delete Session s where s.uniqueId=:sessionId").
	            setLong("sessionId", id).
                   executeUpdate();
	    String[] a = { "DistributionPref", "RoomPref", "RoomGroupPref", "RoomFeaturePref", "BuildingPref", "TimePref", "DatePatternPref", "ExamPeriodPref" };
	    for (String str : a) {       
            hibSession.createQuery(
                    "delete " + str + " p where owner not in (from PreferenceGroup)").
                    executeUpdate();
		}
	    deleteObjects(
				hibSession,
				"ExamConflict",
				hibSession.createQuery("select x.uniqueId from ExamConflict x where x.exams is empty").iterate()
				);
	    tx.commit();
	} catch (HibernateException e) {
	    try {
               if (tx!=null && tx.isActive()) tx.rollback();
           } catch (Exception e1) { }
           throw e;
	}
	HibernateUtil.clearCache();
}
 
开发者ID:Jenner4S,项目名称:unitimes,代码行数:64,代码来源:Session.java

示例11: rollForwardInstructionalOffering

import org.hibernate.Transaction; //导入方法依赖的package包/类
public void rollForwardInstructionalOffering(InstructionalOffering fromInstructionalOffering, Session fromSession, Session toSession){
	InstructionalOfferingDAO ioDao = new InstructionalOfferingDAO();
	org.hibernate.Session hibSession = ioDao.getSession();
	iLog.info("Rolling " + fromInstructionalOffering.getCourseNameWithTitle());
	Transaction trns = null;
	try {
		if (hibSession.getTransaction()==null || !hibSession.getTransaction().isActive())
			trns = hibSession.beginTransaction();
		InstructionalOffering toInstructionalOffering = findToInstructionalOffering(fromInstructionalOffering, toSession, hibSession);
		if (toInstructionalOffering == null){
			return;
		}
		if (toInstructionalOffering.getInstrOfferingConfigs() != null && toInstructionalOffering.getInstrOfferingConfigs().size() > 0){
			toInstructionalOffering.getInstrOfferingConfigs().clear();
		}
		toInstructionalOffering.setNotOffered(fromInstructionalOffering.isNotOffered());
		toInstructionalOffering.setUniqueIdRolledForwardFrom(fromInstructionalOffering.getUniqueId());
		InstrOfferingConfig fromInstrOffrConfig = null;
		InstrOfferingConfig toInstrOffrConfig = null;
		if (fromInstructionalOffering.getInstrOfferingConfigs() != null && fromInstructionalOffering.getInstrOfferingConfigs().size() > 0){
			List<InstrOfferingConfig> fromInstrOffrConfigs = new ArrayList<InstrOfferingConfig>(fromInstructionalOffering.getInstrOfferingConfigs());
			Collections.sort(fromInstrOffrConfigs, new InstrOfferingConfigComparator(null));
			for (Iterator it = fromInstrOffrConfigs.iterator(); it.hasNext();){
				fromInstrOffrConfig = (InstrOfferingConfig) it.next();
				toInstrOffrConfig = new InstrOfferingConfig();
				toInstrOffrConfig.setLimit(fromInstrOffrConfig.getLimit());
				toInstrOffrConfig.setInstructionalOffering(toInstructionalOffering);
				toInstrOffrConfig.setName(fromInstrOffrConfig.getName());
				toInstrOffrConfig.setUnlimitedEnrollment(fromInstrOffrConfig.isUnlimitedEnrollment());
				toInstrOffrConfig.setUniqueIdRolledForwardFrom(fromInstrOffrConfig.getUniqueId());
				toInstrOffrConfig.setClassDurationType(fromInstrOffrConfig.getClassDurationType());
				toInstrOffrConfig.setInstructionalMethod(fromInstrOffrConfig.getInstructionalMethod());
				toInstructionalOffering.addToinstrOfferingConfigs(toInstrOffrConfig);
				hibSession.saveOrUpdate(toInstrOffrConfig);
				hibSession.update(toInstructionalOffering);
				rollForwardSchedSubpartsForAConfig(fromInstrOffrConfig, toInstrOffrConfig, hibSession, toSession);
				hibSession.update(toInstructionalOffering);
			}
		}
		if (trns != null && trns.isActive()) {
			trns.commit();
		}
		hibSession.flush();
		hibSession.evict(toInstructionalOffering);
		hibSession.evict(fromInstructionalOffering);
	} catch (Exception e){
		iLog.error("Failed to roll " + fromInstructionalOffering.getCourseName(), e);
		if (trns != null){
			if (trns.isActive()){
				trns.rollback();
			}
		}
	}		
}
 
开发者ID:Jenner4S,项目名称:unitimes,代码行数:55,代码来源:InstructionalOfferingRollForward.java

示例12: doDelete

import org.hibernate.Transaction; //导入方法依赖的package包/类
/**
  * Delete distribution pref
  * @param distPrefId
  */
 private void doDelete(HttpServletRequest request, String distPrefId) {
     Transaction tx = null;
     
     sessionContext.checkPermission(distPrefId, "DistributionPref", Right.ExaminationDistributionPreferenceDelete);

     try {
         
      DistributionPrefDAO dpDao = new DistributionPrefDAO();
      org.hibernate.Session hibSession = dpDao.getSession();
      tx = hibSession.getTransaction();
      if (tx==null || !tx.isActive())
          tx = hibSession.beginTransaction();
      
         HashSet relatedExams = new HashSet();
      DistributionPref dp = dpDao.get(new Long(distPrefId));
      PreferenceGroup owner = (PreferenceGroup) dp.getOwner();
      owner.getPreferences().remove(dp);
for (Iterator i=dp.getDistributionObjects().iterator();i.hasNext();) {
	DistributionObject dObj = (DistributionObject)i.next();
	PreferenceGroup pg = dObj.getPrefGroup();
	relatedExams.add(pg);
	pg.getDistributionObjects().remove(dObj);
	hibSession.saveOrUpdate(pg);
}
      
      hibSession.delete(dp);
      hibSession.saveOrUpdate(owner);
      
         for (Iterator i=relatedExams.iterator();i.hasNext();) {
             Exam exam = (Exam)i.next();
             ChangeLog.addChange(
                     hibSession, 
                     sessionContext, 
                     exam, 
                     ChangeLog.Source.DIST_PREF_EDIT,
                     ChangeLog.Operation.DELETE,
                     exam.firstSubjectArea(), 
                     exam.firstDepartment());
         }

         if (tx!=null && tx.isActive()) 
          tx.commit();
      
      hibSession.flush();
      hibSession.refresh(owner);
     }
     catch (Exception e) {
         Debug.error(e);
         if (tx!=null && tx.isActive()) 
             tx.rollback();
     }
 }
 
开发者ID:Jenner4S,项目名称:unitimes,代码行数:57,代码来源:ExamDistributionPrefsAction.java

示例13: deleteRoomFeature

import org.hibernate.Transaction; //导入方法依赖的package包/类
/**
 * 
 * @param mapping
 * @param form
 * @param request
 * @param response
 * @return
 * @throws HibernateException
 */
public ActionForward deleteRoomFeature(
		ActionMapping mapping,
		ActionForm form,
		HttpServletRequest request,
		HttpServletResponse response) throws Exception {
	RoomFeatureEditForm roomFeatureEditForm = (RoomFeatureEditForm) form;
	Long id = new Long(roomFeatureEditForm.getId());
	RoomFeatureDAO rdao = new RoomFeatureDAO();
	org.hibernate.Session hibSession = rdao.getSession();
	Transaction tx = null;
	try {
		tx = hibSession.beginTransaction();
		
		RoomFeature rf = rdao.get(id, hibSession);
		
		if (rf != null) {
			
			sessionContext.checkPermission(rf, rf instanceof GlobalRoomFeature ? Right.GlobalRoomFeatureDelete : Right.DepartmenalRoomFeatureDelete);
               
               ChangeLog.addChange(
                       hibSession, 
                       sessionContext, 
                       rf, 
                       ChangeLog.Source.ROOM_FEATURE_EDIT, 
                       ChangeLog.Operation.DELETE, 
                       null, 
                       (rf instanceof DepartmentRoomFeature?((DepartmentRoomFeature)rf).getDepartment():null));

               for (Iterator i=rf.getRooms().iterator();i.hasNext();) {
				Location loc = (Location)i.next();
				loc.getFeatures().remove(rf);
				hibSession.save(loc);
			}
               
			for (RoomFeaturePref p: (List<RoomFeaturePref>)hibSession.createQuery("from RoomFeaturePref p where p.roomFeature.uniqueId = :id")
					.setLong("id", id).list()) {
				p.getOwner().getPreferences().remove(p);
				hibSession.delete(p);
				hibSession.saveOrUpdate(p.getOwner());
			}
               
			hibSession.delete(rf);
		}
           
		tx.commit();
	} catch (Exception e) {
		if (tx!=null && tx.isActive()) tx.rollback();
		throw e;
	}
		
	roomFeatureEditForm.setDeptCode((String)sessionContext.getAttribute(SessionAttribute.DepartmentCodeRoom));
	return mapping.findForward("showRoomFeatureList");
}
 
开发者ID:Jenner4S,项目名称:unitimes,代码行数:63,代码来源:RoomFeatureEditAction.java

示例14: doDelete

import org.hibernate.Transaction; //导入方法依赖的package包/类
/**
  * Delete distribution pref
  * @param distPrefId
  */
 private void doDelete(HttpServletRequest request, String distPrefId) {
     /*
     String query = "delete DistributionPref dp where dp.uniqueId=:distPrefId";

     Query q = hibSession.createQuery(query);
     q.setLong("distPrefId", Long.parseLong(distPrefId));
     q.executeUpdate();
     */
     
     Transaction tx = null;

     try {
         
      DistributionPrefDAO dpDao = new DistributionPrefDAO();
      org.hibernate.Session hibSession = dpDao.getSession();
      tx = hibSession.getTransaction();
      if (tx==null || !tx.isActive())
          tx = hibSession.beginTransaction();
      
         HashSet relatedInstructionalOfferings = new HashSet();
      DistributionPref dp = dpDao.get(new Long(distPrefId));
      
      sessionContext.checkPermission(dp, Right.DistributionPreferenceDelete);
      
      Department dept = (Department) dp.getOwner();
      dept.getPreferences().remove(dp);
for (Iterator i=dp.getDistributionObjects().iterator();i.hasNext();) {
	DistributionObject dObj = (DistributionObject)i.next();
	PreferenceGroup pg = dObj.getPrefGroup();
             relatedInstructionalOfferings.add((pg instanceof Class_ ?((Class_)pg).getSchedulingSubpart():(SchedulingSubpart)pg).getInstrOfferingConfig().getInstructionalOffering());
	pg.getDistributionObjects().remove(dObj);
	hibSession.saveOrUpdate(pg);
}
      
      hibSession.delete(dp);
      hibSession.saveOrUpdate(dept);
      
      List<Long> changedOfferingIds = new ArrayList<Long>();
         for (Iterator i=relatedInstructionalOfferings.iterator();i.hasNext();) {
             InstructionalOffering io = (InstructionalOffering)i.next();
             ChangeLog.addChange(
                     hibSession, 
                     sessionContext, 
                     io, 
                     ChangeLog.Source.DIST_PREF_EDIT,
                     ChangeLog.Operation.DELETE,
                     io.getControllingCourseOffering().getSubjectArea(), 
                     null);
             if (permissionOfferingLockNeeded.check(sessionContext.getUser(), io))
             	changedOfferingIds.add(io.getUniqueId());
         }
         if (!changedOfferingIds.isEmpty())
         	StudentSectioningQueue.offeringChanged(hibSession, sessionContext.getUser(), sessionContext.getUser().getCurrentAcademicSessionId(), changedOfferingIds);

         if (tx!=null && tx.isActive()) 
          tx.commit();
      
      hibSession.flush();
      hibSession.refresh(dept);
     }
     catch (Exception e) {
         Debug.error(e);
         if (tx!=null && tx.isActive()) 
             tx.rollback();
     }
 }
 
开发者ID:Jenner4S,项目名称:unitimes,代码行数:71,代码来源:DistributionPrefsAction.java

示例15: deleteRoomGroup

import org.hibernate.Transaction; //导入方法依赖的package包/类
/**
 * 
 * @param mapping
 * @param form
 * @param request
 * @param response
 * @return
 * @throws Exception 
 */
public ActionForward deleteRoomGroup(
		ActionMapping mapping,
		ActionForm form,
		HttpServletRequest request,
		HttpServletResponse response) throws Exception {
	RoomGroupEditForm roomGroupEditForm = (RoomGroupEditForm) form;
	Long id = new Long(roomGroupEditForm.getId());
	RoomGroupDAO rgdao = new RoomGroupDAO();
	
	org.hibernate.Session hibSession = rgdao.getSession();
	Transaction tx = null;
	try {
		tx = hibSession.beginTransaction();
		
		RoomGroup rg = rgdao.get(id, hibSession);
		
		if (rg != null) {
			
			sessionContext.checkPermission(rg, rg.isGlobal() ? Right.GlobalRoomGroupDelete : Right.DepartmenalRoomGroupDelete);
			
               ChangeLog.addChange(
                       hibSession, 
                       sessionContext, 
                       rg, 
                       ChangeLog.Source.ROOM_GROUP_EDIT, 
                       ChangeLog.Operation.DELETE, 
                       null, 
                       rg.getDepartment());

               Collection rooms = rg.getRooms();
			
			//remove roomGroup from room
			for (Iterator iter = rooms.iterator(); iter.hasNext();) {
				Location r = (Location) iter.next();
				Collection roomGroups = r.getRoomGroups();
				roomGroups.remove(rg);
				hibSession.saveOrUpdate(r);

			}
			
			for (RoomGroupPref p: (List<RoomGroupPref>)hibSession.createQuery("from RoomGroupPref p where p.roomGroup.uniqueId = :id")
					.setLong("id", id).list()) {
				p.getOwner().getPreferences().remove(p);
				hibSession.delete(p);
				hibSession.saveOrUpdate(p.getOwner());
			}

			
			hibSession.delete(rg);
		}
		
		tx.commit();
	} catch (Exception e) {
		Debug.error(e);
		try {
			if(tx!=null && tx.isActive())
				tx.rollback();
		}
		catch (Exception e1) { }
		throw e;
	}

	return mapping.findForward("showRoomGroupList");
}
 
开发者ID:Jenner4S,项目名称:unitimes,代码行数:74,代码来源:RoomGroupEditAction.java


注:本文中的org.hibernate.Transaction.isActive方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。