Module: Muml_Namespace

Defined in:
lib/ontomde-java/java/xsd.rb,
lib/ontomde-java/java/java.rb

Constant Summary collapse

JAVA_IGNORE_NAMESPACE =

List of namespaces to be ignored by generator.

NOTE:

  • user may add its own item int the list.

  • list may contain package or class qualified names.

EXAMPLE:

  • “org.xyz” will ignore every item under org.xyz

  • “org.xyz.ClassZ” will ignore only ClassZ

["java.", "javax.", "xmda.bpm.api", "ontomde.bpm", "xmda.common","org.acegi"]

Instance Method Summary collapse

Instance Method Details

#java_FilePathObject

Returns the path where to generate file for this object.

NOTE:

  • Root directory is taken from context (cf: mtk_context)

Examples (with context equals to “build/”:

  • build/package1/package2

  • build/package1/package2/UneClasse.java



389
390
391
# File 'lib/ontomde-java/java/java.rb', line 389

def java_FilePath
  return java_getContextJavaFilePath()+java_InternalFilePath
end

#java_getContextJavaFilePathObject



345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
# File 'lib/ontomde-java/java/java.rb', line 345

def java_getContextJavaFilePath()
  d=context[:javaDir,nil]
  return d unless d.nil?

  n=java_qualifiedName.to_s
  #root namespace name
  rns=nil
  rnso=umlx_rootNamespace_one0
  #puts "rnso=#{rnso}" unless rnso.nil?
  rns=rnso.uml_name.to_s+'/' unless rnso.nil?
  rns=context[:defaultRootDir]+"/" if rns.nil? 

  #Hack Override package name for some generated elements
  rns='webapp/' if n.include?('struts')

  mappingPathHash=context[:javaMappingPathForRootContainer, {} ]
  if ! mappingPathHash.nil?
   override_rns=mappingPathHash[rns]
   rns=override_rns unless override_rns.nil?
  end

  rel=context[:javaRelativeDir,""]
  
  # override javaRelative
  jfp=context[:javaFilePathRegexp,nil]
  jfp.each { |mapping|
    next unless n =~ mapping[0]
    rel= "/"+mapping[1]
    break
  }
  
  #puts "rns=#{rns}"
  #puts "rel=#{rel}"
  #puts "td rns+rel=#{context[:targetDir]}|#{rns}|#{rel}|"
  return context[:targetDir]+rns+rel
end

#java_ignoreMe?(ignoreExternal = true) ⇒ Boolean

return true if java generator should totaly ignore this element.

NOTE:

  • returns true if this class name is in JAVA_IGNORE_ROOT_PACKAGE_NAME

Returns:

  • (Boolean)


440
441
442
443
444
445
446
447
448
449
# File 'lib/ontomde-java/java/java.rb', line 440

def java_ignoreMe?(ignoreExternal=true)
  #puts "ignore=#{self.class} #{self.uml_name}"
  qn=java_qualifiedName
  return true if umlx_hasStereotype?("nocode")
  return true if umlx_external? && ignoreExternal 
  JAVA_IGNORE_NAMESPACE.each { |ns|
    return true if qn.index(ns)==0
  }
  return false;
end

#java_InternalFilePathObject

Returns the internal path where to generate file for this object.

NOTE:

Examples *package1/package2 *package1/package2/UneClasse.java



400
401
402
403
404
405
406
407
# File 'lib/ontomde-java/java/java.rb', line 400

def java_InternalFilePath
  r=""
  umlx_sub_hierarchy.each { |n|
    r+=n.java_Name
    r+="/"
  }
  return r
end

#java_qualifiedNameObject

Returns this element java qualified name

Example:

package1.package2.AClassClasse
AClassInRootDefaultPackage
package1.package2


415
416
417
418
419
420
421
422
423
# File 'lib/ontomde-java/java/java.rb', line 415

def java_qualifiedName
  r=sep=""
  umlx_hierarchy.each { |n|
    r+=sep
    r+=n.java_Name
    sep="."
  }
  return r
end

#xsd_getContextJavaFilePath(default = nil) ⇒ Object



458
459
460
461
462
463
464
465
466
467
468
# File 'lib/ontomde-java/java/xsd.rb', line 458

def xsd_getContextJavaFilePath(default=nil)
  n=xsd_qualifiedName.to_s
  jfp=context[:javaFilePathRegexp,nil]
  return default if jfp.nil?
  jfp.each { |mapping|
    if n =~ mapping[0]
      return context[:targetDir]+"/"+mapping[1]
    end
  }
  return default
end

#xsd_ignoreMe?(ignoreExternal = true) ⇒ Boolean

return true if java generator should totaly ignore this element.

NOTE:

  • returns true if this class name is in JAVA_IGNORE_ROOT_PACKAGE_NAME

Returns:

  • (Boolean)


528
529
530
531
532
533
534
535
536
537
# File 'lib/ontomde-java/java/xsd.rb', line 528

def xsd_ignoreMe?(ignoreExternal=true)
  #puts "ignore=#{self.class} #{self.uml_name}"
  qn=xsd_qualifiedName
  return true if umlx_hasStereotype?("nocode")
  return true if umlx_external? && ignoreExternal 
  JAVA_IGNORE_NAMESPACE.each { |ns|
    return true if qn.index(ns)==0
  }
  return false;
end

#xsd_InternalFilePathObject

Returns the internal path where to generate file for this object.

NOTE:

Examples *package1/package2 *package1/package2/UneClasse.xsd



488
489
490
491
492
493
494
495
# File 'lib/ontomde-java/java/xsd.rb', line 488

def xsd_InternalFilePath
  r=""
  umlx_sub_hierarchy.each { |n|
    r+=n.xsd_Name
    r+="/"
  }
  return r
end

#xsd_qualifiedNameObject

Returns this element java qualified name

Example:

package1.package2.AClassClasse
AClassInRootDefaultPackage
package1.package2


503
504
505
506
507
508
509
510
511
# File 'lib/ontomde-java/java/xsd.rb', line 503

def xsd_qualifiedName
  r=sep=""
  umlx_hierarchy.each { |n|
    r+=sep
    r+=n.xsd_Name
    sep="."
  }
  return r
end

#xsd_SchemaNameObject

Returns the full java file name for this element (Uses: Java_FilePath and xsd_Name.) Example:

  • build/package1/package2/NomDeLaClasse.xsd



453
454
455
# File 'lib/ontomde-java/java/xsd.rb', line 453

def xsd_SchemaName
  return "#{xsd_SchemaPath}#{xsd_Name}.xsd"
end

#xsd_SchemaPathObject

Returns the path where to generate file for this object.

NOTE:

  • Root directory is taken from context (cf: mtk_context)

Examples (with context equals to “build/”:

  • build/package1/package2

  • build/package1/package2/UneClasse.xsd



477
478
479
# File 'lib/ontomde-java/java/xsd.rb', line 477

def xsd_SchemaPath
  return xsd_getContextJavaFilePath(context[:javaDir])+xsd_InternalFilePath
end