```
██████╗  ██████╗ ██╗    ██╗███████╗██████╗
██╔══██╗██╔═══██╗██║    ██║██╔════╝██╔══██╗
██████╔╝██║   ██║██║ █╗ ██║█████╗  ██████╔╝
██╔═══╝ ██║   ██║██║███╗██║██╔══╝  ██╔══██╗
██║     ╚██████╔╝╚███╔███╔╝███████╗██║  ██║
╚═╝      ╚═════╝  ╚══╝╚══╝ ╚══════╝╚═╝  ╚═╝
```
# class Extractor (Details)
> namespace: **VDM\Joomla\Componentbuilder\Compiler\Customcode**
```uml
@startuml
class Extractor  #Gold {
  # int $currentVersion
  # array $existing
  # array $new
  # array $done
  # array $counter
  # array $fileTypes
  # array $placeholders
  # string $today
  # Config $config
  # Gui $gui
  # Paths $paths
  # Reverse $reverse
  # Placeholder $componentPlaceholder
  # Pathfix $pathfix
  # $user
  # $db
  # $app
  + __construct(?Config $config = null, ?Gui $gui = null, ...)
  + run() : void
  # searchFileContent(string $file, $target) : array
  # insert(int $when = 1) : void
  # update(int $when = 1) : void
  # setStartReplace(int $id, int $commentType, ...) : string
  # addLineChecker(string $replaceKey, int $type, ...) : bool|int
  # getSystemID(string $lineContent, array $placeholders, ...) : mixed
}

note right of Extractor::__construct
  Constructor.

  since: 3.2.0
  
  arguments:
    ?Config $config = null
    ?Gui $gui = null
    ?Paths $paths = null
    ?Reverse $reverse = null
    ?Placeholder $placeholder = null
    ?Pathfix $pathfix = null
end note

note left of Extractor::run
  get the custom code from the local files

  since: 3.2.0
  return: void
end note

note right of Extractor::searchFileContent
  search a file for placeholders and store result

  since: 3.2.0
  return: array
end note

note left of Extractor::insert
  Insert the code

  since: 3.2.0
  return: void
end note

note right of Extractor::update
  Update the code

  since: 3.2.0
  return: void
end note

note left of Extractor::setStartReplace
  set the start replace placeholder

  since: 3.2.0
  return: string
  
  arguments:
    int $id
    int $commentType
    string $startReplace
end note

note right of Extractor::addLineChecker
  Check if this line should be added

  since: 3.2.0
  return: bool|int
  
  arguments:
    string $replaceKey
    int $type
    string $lineContent
end note

note left of Extractor::getSystemID
  search for the system id in the line given

  since: 3.2.0
  return: mixed
  
  arguments:
    string $lineContent
    array $placeholders
    int $commentType
end note
 
@enduml
```

---
```
     ██╗ ██████╗██████╗
     ██║██╔════╝██╔══██╗
     ██║██║     ██████╔╝
██   ██║██║     ██╔══██╗
╚█████╔╝╚██████╗██████╔╝
 ╚════╝  ╚═════╝╚═════╝
```
> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder)

