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


Java DocumentHeader.setDocumentDescription方法代码示例

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


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

示例1: setNewDocumentHeader

import org.kuali.rice.krad.bo.DocumentHeader; //导入方法依赖的package包/类
/**
 * Gets a new document header for this documents type and sets in the document instance.
 *
 * @throws WorkflowException
 */
protected void setNewDocumentHeader() throws WorkflowException {
    // collect the header information from the old document
    Person user = GlobalVariables.getUserSession().getPerson();
    WorkflowDocument sourceWorkflowDocument
            = KRADServiceLocatorWeb.getWorkflowDocumentService().loadWorkflowDocument(getDocumentNumber(), user);
    String sourceDocumentTypeName = sourceWorkflowDocument.getDocumentTypeName();

    // initiate the new workflow entry, get the workflow doc
    WorkflowDocument workflowDocument
            = KRADServiceLocatorWeb.getWorkflowDocumentService().createWorkflowDocument(sourceDocumentTypeName, user);
    UserSessionUtils.addWorkflowDocument(GlobalVariables.getUserSession(), workflowDocument);

    // set new values on the document header, including the document number from which it was copied
    Document newDocument = KRADServiceLocatorWeb.getDocumentService().getNewDocument(sourceDocumentTypeName);
    DocumentHeader newDocumentHeader = newDocument.getDocumentHeader();
    newDocumentHeader.setDocumentTemplateNumber(getDocumentNumber());
    newDocumentHeader.setDocumentDescription(getDocumentHeader().getDocumentDescription());
    newDocumentHeader.setOrganizationDocumentNumber(getDocumentHeader().getOrganizationDocumentNumber());

    // set the new document number on this document
    try {
        KRADServiceLocatorWeb.getLegacyDataAdapter().setObjectPropertyDeep(this,
                KRADPropertyConstants.DOCUMENT_NUMBER, documentNumber.getClass(), newDocument.getDocumentNumber());
    } catch (Exception e) {
        LOG.error("Unable to set document number property in copied document " + this, e);
        throw new RuntimeException("Unable to set document number property in copied document " + this, e);
    }

    // replace the current document header with the new document header
    setDocumentHeader(newDocument.getDocumentHeader());
}
 
开发者ID:kuali,项目名称:kc-rice,代码行数:37,代码来源:DocumentBase.java

示例2: createDocument

import org.kuali.rice.krad.bo.DocumentHeader; //导入方法依赖的package包/类
public static <D extends Document> D createDocument(DocumentService documentService, Class<D> docmentClass) throws WorkflowException {
    D document = (D) documentService.getNewDocument(docmentClass);
    document.getDocumentHeader().setExplanation("unit test created document");

    DocumentHeader documentHeader = document.getDocumentHeader();
    documentHeader.setDocumentDescription("unit test created document");

    return document;
}
 
开发者ID:VU-libtech,项目名称:OLE-INST,代码行数:10,代码来源:DocumentTestUtils.java

示例3: populateQuantityDocument

import org.kuali.rice.krad.bo.DocumentHeader; //导入方法依赖的package包/类
private RequisitionDocument populateQuantityDocument() {
    LOG.debug("Creating a new requisition.");
    RequisitionDocument reqDoc = null;
    try {
        reqDoc = (RequisitionDocument) documentService.getNewDocument(RequisitionDocument.class);
        LOG.info("Populating a new requisition.");
        // RequisitionDocument reqDoc = new RequisitionDocument();
        // set doc attributes
        reqDoc.getDocumentHeader().setExplanation("batch created quantity document");
        DocumentHeader documentHeader = reqDoc.getDocumentHeader();
        documentHeader.setDocumentDescription("batch created quantity document");
        reqDoc.setDocumentFundingSourceCode("INST");
        reqDoc.setRequisitionSourceCode(RequisitionSources.STANDARD_ORDER);
        reqDoc.setPurchaseOrderTransmissionMethodCode(POTransmissionMethods.NOPRINT);
        reqDoc.setPurchaseOrderCostSourceCode(POCostSources.ESTIMATE);
        reqDoc.setChartOfAccountsCode("KO");
        reqDoc.setOrganizationCode("SBSC");
        reqDoc.setDeliveryCampusCode("KO");
        reqDoc.setRequestorPersonName("WATSON,TERRENCE G");
        reqDoc.setRequestorPersonEmailAddress("[email protected]");
        reqDoc.setRequestorPersonPhoneNumber("812-555-5555");
        reqDoc.setDeliveryBuildingCode("ADMN");
        reqDoc.setDeliveryBuildingName("Administration");
        reqDoc.setDeliveryBuildingRoomNumber("100");
        reqDoc.setDeliveryBuildingLine1Address("98 smart street");
        reqDoc.setDeliveryCityName("brainy");
        reqDoc.setDeliveryStateCode("CA");
        reqDoc.setDeliveryPostalCode("46202");
        reqDoc.setDeliveryCountryCode("US");
        reqDoc.setDeliveryToName("front desk");
        reqDoc.setBillingName("THE UNIVERSITY");
        reqDoc.setBillingLine1Address("ACCOUNTS PAYABLE");
        reqDoc.setBillingCityName("BUTTER NUT");
        reqDoc.setBillingStateCode("SC");
        reqDoc.setBillingPostalCode("47402");
        reqDoc.setBillingCountryCode("US");
        reqDoc.setBillingPhoneNumber("111-111-1111");
        reqDoc.setPurchaseOrderAutomaticIndicator(false);
        reqDoc.setApplicationDocumentStatus(RequisitionStatuses.APPDOC_IN_PROCESS);
        reqDoc.setVendorHeaderGeneratedIdentifier(1002);
        reqDoc.setVendorDetailAssignedIdentifier(0);
        reqDoc.setVendorName("MK CORPORATION ACTIVE");
        reqDoc.setVendorLine1Address("3894 SOUTH ST");
        reqDoc.setVendorLine2Address("P.O. BOX 3455");
        reqDoc.setVendorCityName("SPRINGFIELD");
        reqDoc.setVendorStateCode("IL");
        reqDoc.setVendorPostalCode("33555");
        reqDoc.setVendorCountryCode("US");
        reqDoc.setUseTaxIndicator(false);

        // set item attributes
        RequisitionItem item1 = new RequisitionItem();
        item1.setItemLineNumber(new Integer(1));
        item1.setItemUnitOfMeasureCode("PCS");
        item1.setItemCatalogNumber("P10M980");
        item1.setItemDescription("Copy Paper - 8 1/2 x 11, White, 92, 20lb");
        item1.setItemUnitPrice(new BigDecimal(30.20));
        item1.setItemTypeCode("ITEM");
        item1.setItemQuantity(new KualiDecimal(20));
        item1.setExtendedPrice(new KualiDecimal(604));
        item1.setItemAssignedToTradeInIndicator(false);

        // set accounting line attributes
        RequisitionAccount account1 = new RequisitionAccount();
        account1.setPostingYear(2004);
        account1.setChartOfAccountsCode("BL");
        account1.setAccountNumber("1023200");
        account1.setFinancialObjectCode("4100");
        account1.setDebitCreditCode(OLEConstants.GL_DEBIT_CODE);
        account1.setAmount(new KualiDecimal("100"));
        account1.setAccountLinePercent(new BigDecimal("100"));

        item1.getSourceAccountingLines().add(account1);
        reqDoc.getItems().add(item1);
        reqDoc.fixItemReferences();
    } catch (WorkflowException e1) {
        e1.printStackTrace();
    }
    return reqDoc;
}
 
开发者ID:VU-libtech,项目名称:OLE-INST,代码行数:81,代码来源:PurapMassRequisitionStep.java

示例4: populateNonQuantityDocument

import org.kuali.rice.krad.bo.DocumentHeader; //导入方法依赖的package包/类
private RequisitionDocument populateNonQuantityDocument() {
    RequisitionDocument reqDoc = null;
    try {
        reqDoc = (RequisitionDocument) documentService.getNewDocument(RequisitionDocument.class);

        // RequisitionDocument reqDoc = new RequisitionDocument();
        // set doc attributes
        reqDoc.getDocumentHeader().setExplanation("batch created non-quantity document");
        DocumentHeader documentHeader = reqDoc.getDocumentHeader();
        documentHeader.setDocumentDescription("batch created non-quantity document");
        reqDoc.setDocumentFundingSourceCode("INST");
        reqDoc.setRequisitionSourceCode(RequisitionSources.STANDARD_ORDER);
        reqDoc.setPurchaseOrderTransmissionMethodCode(POTransmissionMethods.NOPRINT);
        reqDoc.setPurchaseOrderCostSourceCode(POCostSources.ESTIMATE);
        reqDoc.setChartOfAccountsCode("KO");
        reqDoc.setOrganizationCode("SBSC");
        reqDoc.setDeliveryCampusCode("KO");
        reqDoc.setDeliveryCountryCode("US");
        reqDoc.setRequestorPersonName("WATSON,TERRENCE G");
        reqDoc.setRequestorPersonEmailAddress("[email protected]");
        reqDoc.setRequestorPersonPhoneNumber("812-555-5555");
        reqDoc.setDeliveryBuildingCode("ADMN");
        reqDoc.setDeliveryBuildingName("Administration");
        reqDoc.setDeliveryBuildingRoomNumber("100");
        reqDoc.setDeliveryBuildingLine1Address("98 smart street");
        reqDoc.setDeliveryCityName("brainy");
        reqDoc.setDeliveryStateCode("CA");
        reqDoc.setDeliveryPostalCode("46202");
        reqDoc.setDeliveryToName("front desk");
        reqDoc.setBillingName("THE UNIVERSITY");
        reqDoc.setBillingLine1Address("ACCOUNTS PAYABLE");
        reqDoc.setBillingCityName("BUTTER NUT");
        reqDoc.setBillingStateCode("SC");
        reqDoc.setBillingPostalCode("47402");
        reqDoc.setBillingCountryCode("US");
        reqDoc.setBillingPhoneNumber("111-111-1111");
        reqDoc.setPurchaseOrderAutomaticIndicator(false);
        reqDoc.setApplicationDocumentStatus(RequisitionStatuses.APPDOC_IN_PROCESS);
        reqDoc.setVendorHeaderGeneratedIdentifier(1016);
        reqDoc.setVendorDetailAssignedIdentifier(0);
        reqDoc.setVendorName("PHYSIK INSTRUMENT L.P.");
        reqDoc.setVendorLine1Address("16 AUBURN ST");
        reqDoc.setVendorCityName("AUBURN");
        reqDoc.setVendorStateCode("MA");
        reqDoc.setVendorPostalCode("01501");
        reqDoc.setVendorCountryCode("US");
        reqDoc.setUseTaxIndicator(false);

        // set item attributes
        RequisitionItem item1 = new RequisitionItem();
        item1.setItemLineNumber(new Integer(1));
        item1.setItemUnitOfMeasureCode("");
        item1.setItemCatalogNumber("");
        item1.setItemDescription("consulting");
        item1.setItemUnitPrice(new BigDecimal(5000));
        item1.setItemTypeCode("SRVC");
        item1.setItemQuantity(null);
        item1.setExtendedPrice(new KualiDecimal(5000));
        item1.setItemAssignedToTradeInIndicator(false);

        // set accounting line attributes
        RequisitionAccount account1 = new RequisitionAccount();
        account1.setPostingYear(2004);
        account1.setChartOfAccountsCode("BL");
        account1.setAccountNumber("1023200");
        account1.setFinancialObjectCode("4078");
        account1.setDebitCreditCode(OLEConstants.GL_DEBIT_CODE);
        account1.setAmount(new KualiDecimal("100"));
        account1.setAccountLinePercent(new BigDecimal("100"));

        item1.getSourceAccountingLines().add(account1);
        reqDoc.getItems().add(item1);
        reqDoc.fixItemReferences();
    } catch (WorkflowException e1) {
        e1.printStackTrace();
    }
    return reqDoc;
}
 
开发者ID:VU-libtech,项目名称:OLE-INST,代码行数:79,代码来源:PurapMassRequisitionStep.java

示例5: createAndBlankApproveSalaryExpenseTransferDocument

import org.kuali.rice.krad.bo.DocumentHeader; //导入方法依赖的package包/类
/**
 * @see org.kuali.kfs.integration.ld.LaborModuleService#createAndBlankApproveSalaryExpenseTransferDocument(java.lang.String,
 *      java.lang.String, java.lang.String, java.util.List, java.util.List, java.util.List)
 */
@Override
public void createAndBlankApproveSalaryExpenseTransferDocument(String documentDescription, String explanation, String annotation, List<String> adHocRecipients, List<LaborLedgerExpenseTransferAccountingLine> sourceAccountingLines, List<LaborLedgerExpenseTransferAccountingLine> targetAccountingLines) throws WorkflowException {
    LOG.debug("createSalaryExpenseTransferDocument() start");

    if (sourceAccountingLines == null || sourceAccountingLines.isEmpty()) {
        LOG.info("Cannot create a salary expense document when the given source accounting line is empty.");
        return;
    }

    if (targetAccountingLines == null || targetAccountingLines.isEmpty()) {
        LOG.info("Cannot create a salary expense document when the given target accounting line is empty.");
        return;
    }

    SalaryExpenseTransferDocument document = (SalaryExpenseTransferDocument) getDocumentService().getNewDocument(SalaryExpenseTransferDocument.class);

    document.setEmplid(sourceAccountingLines.get(0).getEmplid());
    document.setSourceAccountingLines(sourceAccountingLines);
    document.setTargetAccountingLines(targetAccountingLines);

    DocumentHeader documentHeader = document.getDocumentHeader();
    documentHeader.setDocumentDescription(documentDescription);
    documentHeader.setExplanation(explanation);

    document.prepareForSave(new SaveDocumentEvent(document));
    document.populateDocumentForRouting();

    String documentTitle = document.getDocumentTitle();
    if (StringUtils.isNotBlank(documentTitle)) {
        document.getDocumentHeader().getWorkflowDocument().setTitle(documentTitle);
    }

    String organizationDocumentNumber = document.getDocumentHeader().getOrganizationDocumentNumber();
    if (StringUtils.isNotBlank(organizationDocumentNumber)) {
        document.getDocumentHeader().getWorkflowDocument().setApplicationDocumentId(organizationDocumentNumber);
    }

    this.getBusinessObjectService().save(document);

    List<AdHocRouteRecipient> adHocRecipientList = new ArrayList<AdHocRouteRecipient>();

    for (String adHocRouteRecipient : adHocRecipients) {
        adHocRecipientList.add(this.buildApprovePersonRecipient(adHocRouteRecipient));
     }

    // blanket approve salary expense transfer doc bypassing all rules
    SpringContext.getBean(WorkflowDocumentService.class).blanketApprove(document.getDocumentHeader().getWorkflowDocument(), annotation, adHocRecipientList);
    SpringContext.getBean(SessionDocumentService.class).addDocumentToUserSession(GlobalVariables.getUserSession(), document.getDocumentHeader().getWorkflowDocument());

}
 
开发者ID:kuali,项目名称:kfs,代码行数:55,代码来源:LaborModuleServiceImpl.java

示例6: populateQuantityDocument

import org.kuali.rice.krad.bo.DocumentHeader; //导入方法依赖的package包/类
private RequisitionDocument populateQuantityDocument() {
    LOG.debug("Creating a new requisition.");
    RequisitionDocument reqDoc = null;
    try {
        reqDoc = (RequisitionDocument) documentService.getNewDocument(RequisitionDocument.class);
        LOG.info("Populating a new requisition.");
        // RequisitionDocument reqDoc = new RequisitionDocument();
        // set doc attributes
        reqDoc.getDocumentHeader().setExplanation("batch created quantity document");
        DocumentHeader documentHeader = reqDoc.getDocumentHeader();
        documentHeader.setDocumentDescription("batch created quantity document");
        reqDoc.setDocumentFundingSourceCode("INST");
        reqDoc.setRequisitionSourceCode(RequisitionSources.STANDARD_ORDER);
        reqDoc.setPurchaseOrderTransmissionMethodCode(POTransmissionMethods.NOPRINT);
        reqDoc.setPurchaseOrderCostSourceCode(POCostSources.ESTIMATE);
        reqDoc.setChartOfAccountsCode("KO");
        reqDoc.setOrganizationCode("SBSC");
        reqDoc.setDeliveryCampusCode("KO");
        reqDoc.setRequestorPersonName("WATSON,TERRENCE G");
        reqDoc.setRequestorPersonEmailAddress("[email protected]");
        reqDoc.setRequestorPersonPhoneNumber("812-555-5555");
        reqDoc.setDeliveryBuildingCode("ADMN");
        reqDoc.setDeliveryBuildingName("Administration");
        reqDoc.setDeliveryBuildingRoomNumber("100");
        reqDoc.setDeliveryBuildingLine1Address("98 smart street");
        reqDoc.setDeliveryCityName("brainy");
        reqDoc.setDeliveryStateCode("CA");
        reqDoc.setDeliveryPostalCode("46202");
        reqDoc.setDeliveryCountryCode("US");
        reqDoc.setDeliveryToName("front desk");
        reqDoc.setBillingName("THE UNIVERSITY");
        reqDoc.setBillingLine1Address("ACCOUNTS PAYABLE");
        reqDoc.setBillingCityName("BUTTER NUT");
        reqDoc.setBillingStateCode("SC");
        reqDoc.setBillingPostalCode("47402");
        reqDoc.setBillingCountryCode("US");
        reqDoc.setBillingPhoneNumber("111-111-1111");
        reqDoc.setPurchaseOrderAutomaticIndicator(false);            
        reqDoc.setApplicationDocumentStatus(RequisitionStatuses.APPDOC_IN_PROCESS);
        reqDoc.setVendorHeaderGeneratedIdentifier(1002);
        reqDoc.setVendorDetailAssignedIdentifier(0);
        reqDoc.setVendorName("MK CORPORATION ACTIVE");
        reqDoc.setVendorLine1Address("3894 SOUTH ST");
        reqDoc.setVendorLine2Address("P.O. BOX 3455");
        reqDoc.setVendorCityName("SPRINGFIELD");
        reqDoc.setVendorStateCode("IL");
        reqDoc.setVendorPostalCode("33555");
        reqDoc.setVendorCountryCode("US");
        reqDoc.setUseTaxIndicator(false);

        // set item attributes
        RequisitionItem item1 = new RequisitionItem();
        item1.setItemLineNumber(new Integer(1));
        item1.setItemUnitOfMeasureCode("PCS");
        item1.setItemCatalogNumber("P10M980");
        item1.setItemDescription("Copy Paper - 8 1/2 x 11, White, 92, 20lb");
        item1.setItemUnitPrice(new BigDecimal(30.20));
        item1.setItemTypeCode("ITEM");
        item1.setItemQuantity(new KualiDecimal(20));
        item1.setExtendedPrice(new KualiDecimal(604));
        item1.setItemAssignedToTradeInIndicator(false);

        // set accounting line attributes
        RequisitionAccount account1 = new RequisitionAccount();
        account1.setPostingYear(2004);
        account1.setChartOfAccountsCode("BL");
        account1.setAccountNumber("1023200");
        account1.setFinancialObjectCode("4100");
        account1.setDebitCreditCode(KFSConstants.GL_DEBIT_CODE);
        account1.setAmount(new KualiDecimal("100"));
        account1.setAccountLinePercent(new BigDecimal("100"));

        item1.getSourceAccountingLines().add(account1);
        reqDoc.getItems().add(item1);
        reqDoc.fixItemReferences();
    }
    catch (WorkflowException e1) {
        e1.printStackTrace();
    }
    return reqDoc;
}
 
开发者ID:kuali,项目名称:kfs,代码行数:82,代码来源:PurapMassRequisitionStep.java

示例7: populateNonQuantityDocument

import org.kuali.rice.krad.bo.DocumentHeader; //导入方法依赖的package包/类
private RequisitionDocument populateNonQuantityDocument() {
    RequisitionDocument reqDoc = null;
    try {
        reqDoc = (RequisitionDocument) documentService.getNewDocument(RequisitionDocument.class);

        // RequisitionDocument reqDoc = new RequisitionDocument();
        // set doc attributes
        reqDoc.getDocumentHeader().setExplanation("batch created non-quantity document");
        DocumentHeader documentHeader = reqDoc.getDocumentHeader();
        documentHeader.setDocumentDescription("batch created non-quantity document");
        reqDoc.setDocumentFundingSourceCode("INST");
        reqDoc.setRequisitionSourceCode(RequisitionSources.STANDARD_ORDER);
        reqDoc.setPurchaseOrderTransmissionMethodCode(POTransmissionMethods.NOPRINT);
        reqDoc.setPurchaseOrderCostSourceCode(POCostSources.ESTIMATE);
        reqDoc.setChartOfAccountsCode("KO");
        reqDoc.setOrganizationCode("SBSC");
        reqDoc.setDeliveryCampusCode("KO");
        reqDoc.setDeliveryCountryCode("US");
        reqDoc.setRequestorPersonName("WATSON,TERRENCE G");
        reqDoc.setRequestorPersonEmailAddress("[email protected]");
        reqDoc.setRequestorPersonPhoneNumber("812-555-5555");
        reqDoc.setDeliveryBuildingCode("ADMN");
        reqDoc.setDeliveryBuildingName("Administration");
        reqDoc.setDeliveryBuildingRoomNumber("100");
        reqDoc.setDeliveryBuildingLine1Address("98 smart street");
        reqDoc.setDeliveryCityName("brainy");
        reqDoc.setDeliveryStateCode("CA");
        reqDoc.setDeliveryPostalCode("46202");
        reqDoc.setDeliveryToName("front desk");
        reqDoc.setBillingName("THE UNIVERSITY");
        reqDoc.setBillingLine1Address("ACCOUNTS PAYABLE");
        reqDoc.setBillingCityName("BUTTER NUT");
        reqDoc.setBillingStateCode("SC");
        reqDoc.setBillingPostalCode("47402");
        reqDoc.setBillingCountryCode("US");
        reqDoc.setBillingPhoneNumber("111-111-1111");
        reqDoc.setPurchaseOrderAutomaticIndicator(false);
        reqDoc.setApplicationDocumentStatus(RequisitionStatuses.APPDOC_IN_PROCESS);
        reqDoc.setVendorHeaderGeneratedIdentifier(1016);
        reqDoc.setVendorDetailAssignedIdentifier(0);
        reqDoc.setVendorName("PHYSIK INSTRUMENT L.P.");
        reqDoc.setVendorLine1Address("16 AUBURN ST");
        reqDoc.setVendorCityName("AUBURN");
        reqDoc.setVendorStateCode("MA");
        reqDoc.setVendorPostalCode("01501");
        reqDoc.setVendorCountryCode("US");
        reqDoc.setUseTaxIndicator(false);

        // set item attributes
        RequisitionItem item1 = new RequisitionItem();
        item1.setItemLineNumber(new Integer(1));
        item1.setItemUnitOfMeasureCode("");
        item1.setItemCatalogNumber("");
        item1.setItemDescription("consulting");
        item1.setItemUnitPrice(new BigDecimal(5000));
        item1.setItemTypeCode("SRVC");
        item1.setItemQuantity(null);
        item1.setExtendedPrice(new KualiDecimal(5000));
        item1.setItemAssignedToTradeInIndicator(false);

        // set accounting line attributes
        RequisitionAccount account1 = new RequisitionAccount();
        account1.setPostingYear(2004);
        account1.setChartOfAccountsCode("BL");
        account1.setAccountNumber("1023200");
        account1.setFinancialObjectCode("4078");
        account1.setDebitCreditCode(KFSConstants.GL_DEBIT_CODE);
        account1.setAmount(new KualiDecimal("100"));
        account1.setAccountLinePercent(new BigDecimal("100"));

        item1.getSourceAccountingLines().add(account1);
        reqDoc.getItems().add(item1);
        reqDoc.fixItemReferences();
    }
    catch (WorkflowException e1) {
        e1.printStackTrace();
    }
    return reqDoc;
}
 
开发者ID:kuali,项目名称:kfs,代码行数:80,代码来源:PurapMassRequisitionStep.java


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